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

get index in multidimensional array in 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"));