晚上好,我试图找到一种方法来搜索数组中的特定字符串,其中所有字符串都位于不同的行上。
这是我的代码
this.importDataObject("MEDDIAGNOSISICD-10.txt", "C:/Users/dell/Documents/tab
excel/MEDDIAGNOSISICD-10.txt");
var oFile = this.getDataObjectContents("MEDDIAGNOSISICD-10.txt");
var cFile = util.stringFromStream(oFile, "utf-8");
var fileArray = cFile.split('\n');
var Med = this.getField("Medications 1");
var CodeOne = this.getField("ICD 10 CODE 2 PGX");
var Index = fileArray.indexOf(Med.value);
var Call = fileArray[Index];
var i, Index;
for (i = 0; i < fileArray.length; i++) {
Index = fileArray[i].indexOf(Med.value);
if(Index > -1) Cartographer = fileArray[i].split('\t');
if(Index > -1) MedAnalysis = Cartographer[0];
if(Index > -1) BrandAnalysis = Cartographer[1];
if(Index > -1) DiagAnalysis = Cartographer[2];
if(Index > -1) CodeAnalysis = Cartographer[3];
if(Index > -1) CodeSearch = CodeAnalysis.search("F33.0");
if(Index > -1 && CodeSearch != -1) CodeOne = "F33.0";
if(Index > -1) console.println(CodeSearch);
}
如果打印出CodeSearch,则结果分别为-1和0,分别显示在不同的行上。
如何搜索阵列中的所有行,或者至少能够查看是否可以首先扫描F33.0。
答案 0 :(得分:0)
使用数组find
方法:
var fileLine = fileArray.find(line => line.includes(Med.value) && line.includes("F33.0"));
if (fileLine) {
[MedAnalysis, BrandAnalysis, DiagAnalysis, CodeAnalysis] = fileLine.split("\t");
if (CodeAnalysis.includes("F33.0")) {
CodeOne = "F33.0";
}
}