Javascript 从JS中的多维数组中获取包含值的数组索引
假设我在JavaScript中有一个多维数组:Javascript 从JS中的多维数组中获取包含值的数组索引,javascript,arrays,search,javascript-objects,Javascript,Arrays,Search,Javascript Objects,假设我在JavaScript中有一个多维数组: var-arr=[ [cat'、'23'、'5123'], [dog'、'53'、'522'], [bird'、'335'、'512'], [horse'、'853'、'152'], [‘猴子’、‘13’、‘5452’] ]; 我想得到arr中数组的索引,它在第一个索引中包含horse(输出应该是3) 我可以通过以下方式完成此操作: var index_i_need; for(var i in arr){ if(arr[i][0]==
var-arr=[
[cat'、'23'、'5123'],
[dog'、'53'、'522'],
[bird'、'335'、'512'],
[horse'、'853'、'152'],
[‘猴子’、‘13’、‘5452’]
];
我想得到arr
中数组的索引,它在第一个索引中包含horse
(输出应该是3)
我可以通过以下方式完成此操作:
var index_i_need;
for(var i in arr){
if(arr[i][0]==='horse') {
index_i_need = i;
break;
}
}
console.log(index_i_need); // 3
console.log(arr[index_i_need]); // ['horse','853','152']
但这是不可伸缩的
我想要一些更直接的方法,比如indexOf()
我知道findIndex()
接受回调函数,但我一直无法正确应用它
有什么建议吗?您可以使用动态查找函数
findByAnimal
,在findIndex中使用
function findByAnimal(animal) {
return function(innerArr){
return innerArr[0] === animal
}
}
arr.findIndex( findByAnimal('horse') )
findIndex的工作方式是将arr中的每个项传递到回调中,回调中的第一个“truthy”返回值将生成索引,如果没有项返回truthy,则返回-1。您可以使用动态查找函数
findByAnimal
,在findIndex中使用
function findByAnimal(animal) {
return function(innerArr){
return innerArr[0] === animal
}
}
arr.findIndex( findByAnimal('horse') )
findIndex的工作方式是将arr中的每个项传递到回调中,回调中的第一个“truthy”返回值将生成索引,如果没有项返回truthy,则返回-1。谢谢@James,我很快意识到了这一点并更新了answer@yevg如果您觉得这很有用,请随时标记为已回答或提供反馈。谢谢Hanks@James,我很快意识到了这一点,并更新了answer@yevg如果您觉得这很有用,请随时标记为已回答或提供反馈。谢谢
arr.findIndex(sa=>sa[0]==“horse”)代码>arr.findIndex(sa=>sa[0]==“horse”)代码>