如何在多维数组中找到匹配的数字?

时间:2017-10-13 16:32:36

标签: javascript arrays multidimensional-array

我试图通过下面的#myrr'数组并匹配numberID可变的任何数字。但是当我知道数组中存在匹配时,我会继续在控制台中显示else语句。

有没有办法运行数组并匹配任何数字?

第一个数字集也是我想要匹配的数字。如果第一个数字匹配,我想显示第二个数字。

<script>
  var numberID = 123456789;

  var myArr = [
    [123456789, 23149232],
    [87649235, 12355678],
    [54353122, 76768621],
    [88907665, 65778448],
  ];

    var ID = numberID;
    var i = myArr.indexOf(ID);
    if(i > -1){
      console.log('We found a match for the following number ID: ' , myArr[0][0]);
      console.log('Here is the matching 2nd number: ' , myArr[0][1]);
    }
    else {
      console.log('Did not find a matching number ID');
    }
</script>

3 个答案:

答案 0 :(得分:1)

arr.find(elt => elt[0] === 123456789)[1]

英文:

arr                          // In arr,
  .find(                     // find the 
    elt =>                   // element whose 
      elt[0]                 // first value
        ===                  // is equal to
          123456789          // this magic number
   )                         
[1]                          // and take its second element

答案 1 :(得分:0)

问题是indexOf没有搜索嵌套数组,因此您必须检查myArr中的每个数组。

您可以使用findIndex功能:

&#13;
&#13;
var numberID = 123456789;

var myArr = [
  [123456789, 23149232],
  [87649235, 12355678],
  [54353122, 76768621],
  [88907665, 65778448],
];

var index = myArr.findIndex((array) => array[0] === numberID);
console.log(index);
&#13;
&#13;
&#13;

如果您希望单个数组以numberID开头,或者您只是使用find函数:

&#13;
&#13;
var numberID = 123456789;

var myArr = [
  [123456789, 23149232],
  [87649235, 12355678],
  [54353122, 76768621],
  [88907665, 65778448],
];

var row = myArr.find((array) => array[0] === numberID);
console.log(row);
&#13;
&#13;
&#13;

答案 2 :(得分:0)

循环遍历myArr并检查第一个索引并输出第二个索引为true。

var numberID = 123456789;

var myArr = [
    [123456789, 23149232],
    [87649235, 12355678],
    [54353122, 76768621],
    [88907665, 65778448],
  ];
  
myArr.forEach(val => {
  if (val[0] === numberID) {
    console.log(val[1])
  }
})