gpt4 book ai didi

javascript - 检查数组中是否包含某些坐标的最佳方法(JavaScript)

转载 作者:行者123 更新时间:2023-12-04 00:58:09 25 4
gpt4 key购买 nike

在处理坐标数组时,将其视为长度为2的数组,有必要检查该数组中是否包含某些坐标。但是,JavaScript不能真正直接做到这一点(在这里,我使用ES2016方法Array.includes,但出现更经典的Array.indexOf时出现相同的问题):

const a = [[1,2],[5,6]];
const find = a.includes([5,6]);
console.log(find);

这将返回false。这一直困扰着我。有人可以向我解释为什么它返回false吗?为了解决这个问题,我通常定义一个辅助函数:
function hasElement(arr,el) {
return arr.some(x => x[0] === el[0] && x[1] === el[1])
}

这里的内部条件也可以用 x.toString() === el.toString()代替。然后在上面的示例中 hasElement(a,[5,6])返回true。

有没有更优雅的方法来检查包含,最好不编写辅助函数?

最佳答案

您可以使用 JSON.stringify 方法将javascript对象或值转换为JSON字符串,然后对要搜索的数组执行相同的操作,只需检查主数组是否包含要查找的数组即可。

const a = [[1,2],[5,6]], array = [5,6];
const find = JSON.stringify(a).includes(JSON.stringify(array));
console.log(find);

关于javascript - 检查数组中是否包含某些坐标的最佳方法(JavaScript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61167382/

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