如何在多维数组中找到匹配的数字?
问题描述:
我试图通过下面的'myArr'数组运行并匹配number number vairable的任何数字。但是,当我知道数组中存在匹配时,我一直在控制台中显示其他语句。如何在多维数组中找到匹配的数字?
有没有办法通过数组运行并匹配任何数字?
另外第一个数字集是我想要匹配的。如果第一个匹配,我想显示第二个数字。
<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>
答
问题是indexOf
不搜索嵌套的数组,所以你必须检查每个单独的阵列中myArr
。
您可以使用findIndex
功能:
var numberID = 123456789;
var myArr = [
[123456789, 23149232],
[87649235, 12355678],
[54353122, 76768621],
[88907665, 65778448],
];
var index = myArr.findIndex((array) => array[0] === numberID);
console.log(index);
或者,如果你只是使用find
功能,如果你想与numberID
开始个别阵列:
var numberID = 123456789;
var myArr = [
[123456789, 23149232],
[87649235, 12355678],
[54353122, 76768621],
[88907665, 65778448],
];
var row = myArr.find((array) => array[0] === numberID);
console.log(row);
答
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
答
遍历您myArr
,只是检查第一指数和输出上真正的第二个指数。
var numberID = 123456789;
var myArr = [
[123456789, 23149232],
[87649235, 12355678],
[54353122, 76768621],
[88907665, 65778448],
];
myArr.forEach(val => {
if (val[0] === numberID) {
console.log(val[1])
}
})
我建议你使用一个 “循环”。 – 2017-10-13 16:34:39
你想找到所有的匹配,或只是第一个? – 2017-10-13 16:38:10