【问题标题】:Check if an array of arrays contains a value in javascript检查数组数组是否包含javascript中的值
【发布时间】:2021-08-19 12:19:38
【问题描述】:

我知道如果有一个值数组必须使用这种方法:

console.log(['joe', 'jane', 'mary'].includes('jane')); // true

但是如果是数组数组,有没有捷径可以做到?之间无需其他计算。

对于这个输入:

[['jane'],['joe'],['mary']]

【问题讨论】:

  • arr.some((a) => a.includes("jane"));

标签: javascript arrays ecmascript-6 include


【解决方案1】:

您可以使用 flat 方法来展平数组。对于更多的网络数组,您还可以提及 flat(depth) 之类的深度

let arr = [["jane"],["joe"],["mary"]];

arr.flat().includes('jane'); //true

【讨论】:

    【解决方案2】:

    您可以使用some轻松实现此结果

    arr.some((a) => a.includes("jane"))
    

    const arr = [
      ["jane"],
      ["joe"],
      ["mary"]
    ];
    const arr2 = [
      ["joe"],
      ["mary"]
    ];
    
    console.log(arr.some((a) => a.includes("jane")));
    console.log(arr2.some((a) => a.includes("jane")));

    【讨论】:

      【解决方案3】:

      也可以先将 1 d aaray 中的 2d 数组展平,然后使用 include 来查找数组是否包含该元素

      var arr = [['jane'],['joe'],['marry']]
      var newarr=[].concat(...arr)
      var v=newarr.includes('jane')
      console.log(v)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-10
        • 1970-01-01
        相关资源
        最近更新 更多