我想比较多阵列和结合任何相同:的Javascript:比较三个数组
A = [1,2,3];
B = [1,2,3];
C = [1,2,3];
D = [10,11,12];
E = [10,11,12];
F = [10,11,12];
G = [13,14];
H = [13,14];
如果有相同的阵列,然后我想创建新的阵列出相同的国家:
I = [1,2,3];
J = [10,11,12];
K = [13,14];
我需要遍历一个数组中的每个元素对其他数组中的所有元素吗?
for (var i in A) {
for (var j in B) {
if (A[i] == J[j]) {
// create new arrays
}
}
}
等等
然后,创建新的阵列出来的比赛吗?听起来像很多开销。
完成此操作的最佳方法是什么?
谢谢!
for-in迭代对象键。它不是* for-each循环,你不应该在数组中使用它。 – hugomg
@missingno评论很好,但试图解释为什么不应该使用或不提供链接。谢谢。 – JsusSalv
我应该更加明确。数组除了索引之外还有其他属性(您真正关心的),而且for-in也可以迭代它们(除非您的浏览器一直保护您)。如果你决定在某一天使用改变Array.prototype的库,如MooTools或Prototype,那么这是特别危险的,并且突然出现大量虚假的东西出现在你的循环中。要迭代一个数组,你应该使用一个简单的for-loop或者一个迭代方法,比如.forEach(如果你的浏览器/库支持的话) – hugomg