javascript - 如何测试数组中是否存在特定字符串
问题描述
晚上好,我正在尝试找到一种方法来搜索数组中的特定字符串,其中字符串都在不同的行上。
这是我的代码
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。
解决方案
使用数组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";
}
}
推荐阅读
- c# - 脚本错误:';' 预期的。统一错误
- python - GCP 数据存储游标相同
- kubernetes - Kubernetes 授予用户/服务帐户权限以使用“kubectl cp”命令
- c - 在文件读取中,如何跳过第 N 行
- postgresql - 如何从日期范围内获取所有天数并按这些天数分组?
- java - 如何在按钮中显示进度百分比
- django - 使用 Django ORM 对 jsonb 字段进行计数聚合
- javascript - 点击速度的jQuery选择器类型
- reactjs - 如何添加多个链接材质文本字段
- azureservicebus - 可以使用 Azure 逻辑应用将 AMQP 消息发送到服务总线主题吗?