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]
是每个子数组中的第一个值(名称)。
它将在第一次成功匹配时停止。
我想在 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]
是每个子数组中的第一个值(名称)。
它将在第一次成功匹配时停止。