A_u*_*ser 5 javascript indexing
我想问一下我在JavaScript中关于2D数组的问题,类似于:
var array = [[2,45],[3,56],[5,67],[8,98],[6,89],[9,89],[5,67]]
Run Code Online (Sandbox Code Playgroud)
也就是说,在每个索引上,我也有一个数组.
假设我的第二个索引中有一个值56,我想要相应的第一个索引(即上例中的3个).
我可以使用循环(如果没有其他选项),但有没有更好的方法?
另外,我知道indexOfJavaScript中的方法,但是当我这样调用它时它不会返回索引:
array.indexOf(56);
Run Code Online (Sandbox Code Playgroud)
任何见解都会有所帮助.
Flo*_*ine 11
使用一些迭代器函数.
filter允许您迭代数组并在函数返回时仅返回值true.
现代浏览器方式:
var arr = array.filter( function( el ) {
return !!~el.indexOf( 56 );
} );
console.log( arr ); // [3, 56]
console.log( arr[ 0 ] ); // "3"
Run Code Online (Sandbox Code Playgroud)
传统的浏览器方式,使用jQuery:
var arr = $.filter( array, function() {
return !!~$.inArray( 56, $( this ) );
} );
console.log( arr ); // [3, 56]
console.log( arr[ 0 ] ); // "3"
Run Code Online (Sandbox Code Playgroud)
你可以这样做:
var ret;
var index = array.map(function(el){return el[1];}).indexOf(56);
if (index !== -1) {
ret = array[index][0];
}
Run Code Online (Sandbox Code Playgroud)