我试图在2D数组中找到一个确切的值,但它不起作用。我不知道我犯了什么错误。我只需找到字符串“Terminal - Gate:”。
这是我的代码:
for (i = 0; i < data.length; i++) {
for (j = 0; j < data[i].length; j++) {
var re = new RegExp('\\b(' + "Terminal - Gate:" + ')\\b');
var checkWord = re.test(data[i][j]);
if (checkWord){
console.log(data[i][j]);
console.log(data.indexOf(data[i]));
console.log(data.indexOf(data[j]));
}
}
}
答案 0 :(得分:1)
请尝试以下正则表达式:
var re = new RegExp('\"Terminal - Gate:\"');
希望有所帮助
答案 1 :(得分:1)
看起来您正在尝试查找包含'Terminal - Gate:'
的字符串。如果是这种情况,这应该可行。
var data = [['abc', 'def'], ['abc', 'def'], ['abc', 'Terminal - Gate:', 'def', 'ghi']];
var i, j;
var found = false;
for (i = 0; i < data.length; i++) {
for (j = 0; j < data[i].length; j++) {
if (data[i][j].includes('Terminal - Gate:')) {
found = true;
break;
}
}
if (found) {
break;
}
}
if (!found) {
i = undefined;
j = undefined;
}
console.log(i, j);
它会在找到后停止,并且您将在循环外部获得正确的i
和j
值。如果找不到,i
和j
都将undefined
。
答案 2 :(得分:0)
您可以使用.includes()
吗?像这样......
for (let i = 0; i < data.length; i++) {
for (let j = 0; j < data[i].length; j++) {
if (data[i][j].includes('Terminal - Gate:')){
console.log(data[i][j]);
console.log(data.indexOf(data[i]));
console.log(data.indexOf(data[j]));
}
}
}