使用Javascript在数组数组中搜索第一个索引

时间:2015-04-01 18:24:33

标签: javascript arrays

我有这样的数据:

[['Account 1', 122.00], ['Account 2', 342.33], ['Account 3', 103.32]]

我希望能够检查数组的任何第一个索引中是否存在字符串,并在整个数组中找到它的索引。换句话说:

index = find(arr, 'Account 2') // This would return 1

JS是否已经有内部可以做到这一点?

6 个答案:

答案 0 :(得分:4)

在ES6中会有一个findIndex method,它可以满足您的需求。不过,你可能需要shim it

var arr = [['Account 1', 122.00], ['Account 2', 342.33], ['Account 3', 103.32]]
var index = arr.findIndex(function(item) { return item[0] == 'Account 2'; }) // 1

答案 1 :(得分:1)

不确定是否内置了某些内容,但您始终可以运行简单的循环

var index;
for(var i = 0; i < yourArray.length; i++)
    if(yourArray[i][0] == 'Account 2')
    {
        index = i;
        break;
    }

这将使索引变量成为您正在寻找的索引。您可以在自己的代码中使其成为一个函数,以避免重复代码。

答案 2 :(得分:0)

这可能符合您的需求:

var arr = [['Account 1', 122.00], ['Account 2', 342.33], ['Account 3', 103.32]];

function find( data, term ){
    ret = null;
    data.forEach(function(item, index){
        if (item[0] === term)
            ret = index;
    });
    return ret;
};

小提琴: http://jsfiddle.net/eguj3d5e/

答案 3 :(得分:0)

像这样工作......

var arr = [['Account 1', 122.00], ['Account 2', 342.33], ['Account 3', 103.32]];

var find = function(array, string) {
    var ret;
    array.forEach(function(arr, index) {
        if(arr[0] === string){
            ret = index;
        }
    });
    return ret;
}

find(arr, 'Account 2');

答案 4 :(得分:0)

以下是使用开源项目jinqJs

的方法

请参阅Fiddle Example

var myarr = [['Account 1', 122.00], ['Account 2', 342.33], ['Account 3', 103.32]];
var result = jinqJs().from(myarr).where(function(row){return row[0] === 'Account 2'}).select();

答案 5 :(得分:-3)

index = indexOf(arr, 'Account 2')