我必须在javascript中获得"查询响应"一词的第一个索引;在"output_pacs"中出现多次。这是一个变量,其中分配了内容,即具有多行和多列的文件。
var strutturaIndici=[];
for(var i=0;i< output.length;i++)
{
var indice_primo_carattere= output(i).indexOf("Query Response");
strutturaIndici.push(indice_primo_carattere);
}
logger.debug('StrutturaIndici:' +strutturaIndici);
问题是术语"查询响应"在这个文件中出现多次,每次它出现在这个内容中,我都必须获得这个术语的第一个索引使用这段代码,在控制台中,我无法获得索引,我该怎么办?在控制台中,我得到以下内容:
[2021-01-30 12:53:20,002] DEBUG (js-connector:?): StrutturaIndici:
尝试使用:
function getIndexes(searchStr, str) {
let searchStrLen = searchStr.length;
if (searchStrLen == 0) {
return [];
}
let startIndex = 0, index, indices = [];
str = str.toLowerCase();
searchStr = searchStr.toLowerCase();
while ((index = str.indexOf(searchStr, startIndex)) > -1) {
indices.push(index);
startIndex = index + searchStrLen;
}
return indices;
}
let a = getIndexes("Query Response", "Query Response Happy New Year Query Response Happy Query Response New Year Happy Pongal Query Response New Year");
console.log(a);
创建一个循环,每次调用indexOf
,以lastIndex
作为搜索下一项的开始。如果indexOf
返回-1,则跳出循环。
您可以在这里查看indexOf
函数是如何在字符串上定义的
var output_pacs = "test Query Response Query Response hello Query Response"
var indices = [];
var lastIndex = 0;
while (true) {
lastIndex = output_pacs.indexOf("Query Response", lastIndex + 1);
if (lastIndex === -1) {
// No more found
break;
}
indices.push(lastIndex);
}
console.log('StrutturaIndici:' + indices);