我想问一个关于 JavaScript 中的二维数组的问题,类似于:
var array = [[2,45],[3,56],[5,67],[8,98],[6,89],[9,89],[5,67]]
也就是说,在每个索引上,我都有一个数组。
假设我的第二个索引中有一个值,如 56
,我想要相应的第一个索引(即上例中的 3)。
我可以使用循环来完成(如果没有其他选择),但是有没有更好的方法?
此外,我知道 JavaScript 中的 indexOf
方法,但是当我这样调用它时它不会返回索引:
array.indexOf(56);
任何见解都会有所帮助。
最佳答案
使用一些迭代器函数。
filter
允许您遍历数组并仅在函数返回 true
时返回值。
现代浏览器方式:
var arr = array.filter( function( el ) {
return !!~el.indexOf( 56 );
} );
console.log( arr ); // [3, 56]
console.log( arr[ 0 ] ); // "3"
旧版浏览器方式,使用 jQuery:
var arr = $.filter( array, function() {
return !!~$.inArray( 56, $( this ) );
} );
console.log( arr ); // [3, 56]
console.log( arr[ 0 ] ); // "3"
关于javascript - 使用 indexOf 方法在二维数组中查找值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11080736/