gpt4 book ai didi

javascript - .some() 函数不适用于嵌套数组?

转载 作者:行者123 更新时间:2023-11-30 11:08:21 24 4
gpt4 key购买 nike

例如,如果我想检查 arr1(3 个数组的数组)是否包含 arr2(2 个数组的数组)的任何元素,我使用.some() 函数,但它返回 false

let arr1 = [[1, 2], [2, 3], [3, 4]]
let arr2 = [[1, 2], [5, 2],]

if (arr1.some(x => arr2.includes(x))) {
alert('arr1 has arr2')
};

x 确实返回数组 [1, 2],但由于某些原因它没有通过 arr1 中 .some() 的检查。

最佳答案

.includes 将返回 true 如果传递的项目是 === 到数组中的一个,但单独的对象永远不会 === 在 JS 中相互引用,除非一个是从另一个引用创建的:

const arr = [1, 2];
console.log(arr === [1, 2]);
const arr2 = arr; // same reference
console.log(arr === arr2);

.我想一种方法是首先对子数组进行字符串化:

let arr1 = [[1, 2], [2, 3], [3, 4]]
let arr2 = [[1, 2], [5, 2],]

if (arr1.some((subarr1) => {
const str1 = JSON.stringify(subarr1);
return arr2.some(subarr2 => JSON.stringify(subarr2) === str1);
})) {
console.log('arr1 has arr2')
}

关于javascript - .some() 函数不适用于嵌套数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54777430/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com