【问题标题】:How to determine if an array includes another array in JS? [duplicate]JS中如何判断一个数组是否包含另一个数组? [复制]
【发布时间】:2020-01-22 05:52:10
【问题描述】:

我想知道在 JS 中确定一个数组在另一个数组中的成员资格的最佳方法是什么。

这是一个例子

let a = [];
a.push([1,2]);
a.includes([1,2]) <- evaluates to false
a.indexOf([1,2]) <- evaluates to -1

这里有什么问题?有什么有效的解决方法吗?

【问题讨论】:

  • a.includes([1,2]) 的预期输出是什么
  • 很简单....它们不是同一个数组对象引用。 [1,2] !== [1,2]
  • 那我怎么知道有没有两个数字相同的物体呢?

标签: javascript arrays


【解决方案1】:

目前,您的搜索数组实际上并不等于 a 数组中的数组,因为它们在内存中有 2 个不同的引用。但是,您可以将数组转换为字符串,这样您的搜索就可以等于数组中的另一个字符串数组。

为此,您可以使用.map(JSON.stringify) 将您的内部数组转换为字符串,然后使用.includes(JSON.stringify(search_arrr)) 搜索您的数组的字符串版本。

请看下面的例子:

let a = [];
let search = [1, 2];
a.push([1,2]);

a = a.map(JSON.stringify)
console.log(a.includes(JSON.stringify(search)));

【讨论】:

    猜你喜欢
    • 2014-10-10
    • 2014-01-22
    • 2017-05-30
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2018-04-15
    • 2020-05-16
    • 2015-10-28
    相关资源
    最近更新 更多