在2d javascript数组中搜索已知的完整数组
Search 2d javascript array for a known complete array
我有一个类似于以下的2d数组:
var array = [
{100,200},
{200,200},
{100,400}
];
现在我想知道2d数组中是否存在已知数组。例如,我想检查[200,200]
是否作为2d数组中的第二级数组存在。
在过去的1d阵列上,我使用过这样的东西:
if (value in array) {...}
似乎无法在2d上使用这种方法。什么是最好的解决方案?
不确定您是否已经知道,但您的语法不正确。它应该是这样的:
var array = [
[100,200],
[200,200],
[100,400]
];
检查[200200]是否作为二级数组存在的一种简单方法:
console.log(array[1][0] == 200 && array[1][1] == 200);
另一种简单的方法是使用嵌套循环并遍历每个项目。
如果你想要一种快速的方法,你可能需要阅读搜索算法。搜索算法
var array = [
[100,200],
[200,200],
[100,400]
];
var searchFor = [200,200];
function arrayExistsInside(haystack, needle) {
for(var i = 0; i < haystack.length; i++) {
if(compareArray(haystack[i], needle)) return true;
}
return false;
}
function compareArray(array1, array2) {
if(array1.length != array2.length) return false;
for(var i = 0; i < array1.length; i++) {
if(array1[i] != array2[i]) return false;
}
return true;
}
if(arrayExistsInside(array, searchFor)) { ... }
您还可以使用"如何在JavaScript中比较数组?"中概述的比较函数?
相关文章:
- Js char数组将字符串整数视为整数
- 如何在JavaScript中剥离数组元素中的非整数
- 如何删除“;整数“;JavaScript中对象的数组
- 效率:整数数组的一个子集中两个项之间的最大差值
- 在JS中返回数组的大整数运算
- 创建一个javascript数组(N),该数组由连续的较小整数组成,其和为1000
- 包含整数(秒)和 setTimeout() 的数组
- 在参数数组中传递整数数组
- 将整数数组从插件传递到JavaScript
- Javascript-如何快速构建不同正整数数组的二进制表示
- 将随机整数分配给数组中的项,summa应该是一个固定的数字
- 在JavaScript中,是否使用数组's的length属性生成整数数学
- 函数来检查给定整数数组中给定位置的元素是否大于其两个邻域
- 如何将整数数组转换为人力车的 x/y 坐标
- parseInt() 不会将数组的每个数组元素转换为整数
- 角度 - 数组从承诺更新,整数不更新
- 如何用整数“平滑”数组
- 用于从包含最大求和的整数数组中提取子数组的算法
- 在 JQuery 中将整数数组转换为字符串数组
- 在angular中使用json数组整数