Google 脚本 - 如何在搜索数组中找到嵌套数组的索引?

Google Script - How to find the index of a nested Array in the search Array?

我想在 SearchArray(数据)中找到 NestedArray(用户数据)的索引。我已经在下面插入了现有代码。

var data = [["John",25],["James",19],["Liam",27],["George",22]]
var user = "Liam";
var userdata = [];

const userfound = data.some(function(row){
    if(row[0] == user){ 
      userdata = row; 
      return true;
    }
    else {return false;}
});

console.log(userfound);
console.log(data);
console.log(userdata);

上面的代码给出了对应的log:

true
Array [Array ["John", 25], Array ["James", 19], Array ["Liam", 27], Array ["George", 22]]
Array ["Liam", 27]

通常我会尝试在数组中查找项目的索引,如下所示:

const index = data.findIndex( x => userdata.includes(x)); 

然而,这不适用于二维数组。有人知道吗?

function cantfindmyindex() {
  var data = [["John", 25], ["James", 19], ["Liam", 27], ["George", 22]];
  var user = "Liam";
  console.log(data.map(r => r[0]).indexOf(user));
}

您可以将 findIndex() 与二维数组一起使用,如下所示:

var data = [["John",25],["James",19],["Liam",27],["George",22]]
var user = "Liam";

const isUser = (element) => element[0] === user;
console.log( data.findIndex(isUser) );

这里,isUser是一个测试函数,可以传给findIndex()。每个 element 都是外部数组中的一个条目 - 因此 element[0] 是每个子数组中的第一个值(名称)。

它将在第一次成功匹配时停止。