繁体   English   中英

在javascript中搜索并找到多维数组中字符串的索引

[英]search and find the index of a string in multidimensional array in javascript

我有一个多维数组,我想在用户输入的那个数组中找到一个字符串。 而且我想存储它的索引(它们都像字符串在arr[a][b] ,我都需要ab的值。

例如,我有一个如下数组,想找到单词“ scar”,我怎么得到它?

var arr=[["hey","oh"],["scar","tissue"],["other","side"]];

我已经尝试了以下块:

var a;
var b;

for (var z = 0; z < arr.length; z++) {
  for (var i = 0; i < 2; i++) {
    if (arr[z][i] === "scar") {
      b = z;  
      a = i;
    }
  }
}

我尝试搜索和研究该问题,但找不到。

提前致谢。

您可以通过多种方式搜索字符串

使用嵌套的for-for

for (a = 0; a < arr.length; a++){
  for (b=0; b < arr[a].length; b++){
    if (arr[a][b] == mySearch){
      return true;
    }
  }
}

使用嵌套的forEach

var found = false;
arr.forEach(function(a) {
  a.forEach(function(b) {
    if (b == wordToFind) {
      found = true;
    }
  });
});

return found;

您可以循环每个子数组,然后使用函数indexOf()检查是否找到了所需的索引:

 var arr = [["hey","oh"], ["scar","tissue"], ["other","side"]]; function get_index_of_string(my_array, mystring) { var a = 0; var results = []; var b, subarray; for (var arrayIndex in my_array) { subarray = my_array[arrayIndex]; var search = subarray.indexOf(mystring) if (search != -1){ a++; b = search; } } results[0] = a; results[1] = b; return results; } var results = get_index_of_string(arr,"scar"); if (results[0] != -1 && results[1] != -1) { alert("String is found in the " + results[0] + " subarray in the " + results[1] + " index"); } else{ alert("String is not found"); } 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM