我有这样的数据:
[['Account 1', 122.00], ['Account 2', 342.33], ['Account 3', 103.32]]
我希望能够检查数组的任何第一个索引中是否存在字符串,并在整个数组中找到它的索引。换句话说:
index = find(arr, 'Account 2') // This would return 1
JS是否已经有内部可以做到这一点?
答案 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;
};
答案 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
的方法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')