我试图通过下面的#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>
答案 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
功能:
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;
如果您希望单个数组以numberID
开头,或者您只是使用find
函数:
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;
答案 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])
}
})