【问题标题】:Google Script - How to find the index of a nested Array in the search Array?Google Script - 如何在搜索数组中找到嵌套数组的索引?
【发布时间】:2021-06-11 15:16:59
【问题描述】:

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

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);

上面的代码给出了对应的日志:

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)); 

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

【问题讨论】:

    标签: arrays google-apps-script multidimensional-array indexof


    【解决方案1】:
    function cantfindmyindex() {
      var data = [["John", 25], ["James", 19], ["Liam", 27], ["George", 22]];
      var user = "Liam";
      console.log(data.map(r => r[0]).indexOf(user));
    }
    

    【讨论】:

      【解决方案2】:

      您可以将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] 是每个子数组中的第一个值(名称)。

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

      【讨论】:

        猜你喜欢
        • 2021-11-30
        • 1970-01-01
        • 1970-01-01
        • 2017-04-12
        • 2019-11-13
        • 1970-01-01
        • 2013-01-18
        • 1970-01-01
        • 2018-01-25
        相关资源
        最近更新 更多