javascript - 使用 indexOf 方法在二维数组中查找值

标签 javascript indexing

我想问一个关于 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/

相关文章:

javascript - 谷歌地图事件对象的元素列表后缺少]

javascript - 在javascript中检索不断更新的系统时间

javascript - 如何在 vis.js 中隐藏图形的分支?

sql - 在 VARCHAR 数据库字段上建立索引可以提高插入速度吗?

javascript - 如何使用 JavaScript 在 HTML DOM 对象数组中通过数据选择器查找元素?

javascript - JQuery 获取连续的元素序列

c++ - 如果大小等于特定数字,如何找到字符串 vector 的单个索引的大小并打印索引?

MySQL 查询(带子查询)优化

mysql - 优化长 MySql 查询的索引

xcode - 如何在 Xcode 4 中禁用索引?