在javascript的多维数组中获取索引

get index in multidimensional array in javascript

本文关键字:获取 索引 数组 javascript      更新时间:2023-09-26

这个问题是使用javascript中给定字符串的值获取多维数组的索引

我试过这个答案,

var    a1 = [["present",["John","Josh","Jay"]],["absent",["May","Mary","Mary Jane"]]],
   a2 = [["J",["John","Josh","Jay"]],["M",["May","Mary","Mary Jane"]],["S",["Sally","Sam","Sammy Davis"]]],
getStatus = (a,n) => a.find(e => e[1].indexOf(n) !== -1)[0],
getIndex = (a,n) => a.findIndex(e => e[1].indexOf(n) !== -1);
console.log(getStatus(a1,"Mary"));
console.log(getIndex(a2,"Sammy Davis"));

这是工作,但有问题。如果给定的字符串不在数组中怎么办?如何处理呢?如何得到所有的索引,如果有一个以上的索引有给定字符串的值?

例如,在a1中,

var a1 = ["present",["John","Josh","Jay"]],["absent",["May","Josh","Mary Jane"]]]

如何得到0,1?使用getIndex () ?

我不得不同意@Rob M。但是你仍然可以这样做;

var    a1 = [["present",["John","Josh","Jay"]],["absent",["May","Mary","Mary Jane"]]],
       a2 = [["J",["John","Josh","Jay"]],["M",["May","Mary","Mary Jane"]],["S",["Sally","Sam","Sammy Davis"]]],
getStatus = (a,n) => a.find(e => e[1].indexOf(n) !== -1)[0],
 getIndex = (a,n) => { var x = -1;
                       return [a.findIndex(e => (x = e[1].indexOf(n), x !== -1)),x];
                     };
console.log(getIndex(a2,"May"));
console.log(getIndex(a2,"Sammy Davis"));
console.log(getIndex(a2,"Daniel"));