作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我将直接编写这个代码,因为它非常具体。如何测试 arr 是否包含一个本身就是特定数组的元素。为什么我不能使用数组文字作为 indexOf 的参数?我正在尝试查看坐标数组是否包含特定的坐标对。
var arr = [[0,0], [1,1]];
arr[0]; // [0, 0]
arr.indexOf([0, 0]); // -1
var y = arr[0];
arr.indexOf(y); // 0
var x = [0, 0];
arr.indexOf(x); // -1
最佳答案
正如其他人指出的,[0, 0] !== [0, 0]
。相反,将 findIndex
与检查数组相等性的函数一起使用:
var match = [0, 0];
array.findIndex(function(elt) { return arrayIsEqual(elt, match); })
现在您只需编写arrayIsEqual
。请参阅How to check if two arrays are equal with JavaScript?一些想法。如果您的数组始终有两个元素,那么它可能只是 elt[0] === match[0] && elt[1] === match[1]
。
强制免责声明:findIndex
是 ES6。然而,除了 IE11 之外,几乎所有您关心的地方都实现了它。如果需要,请使用填充或编写您自己的填充。
关于javascript - 如何判断数组是否包含另一个特定数组,而不仅仅是其元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35425053/
我是一名优秀的程序员,十分优秀!