当前正在使用JavaScript,我需要遍历数组数组以确定是否有重复的数组,然后删除那些重复的数组。在这种情况下,运行时至关重要,因此我想知道最有效的方法是什么。
在这种情况下是否需要使用哈希表?其范围将是哈希每个序列,然后使用哈希确定该序列是否再次出现。因此,每个序列都是主控数组中的一个数组,任何重复项都将是同一数组中的其他数组。此外,极其重要的是所有单独的数组必须保持自身有序(即,单独的数组中的元素必须始终保持其位置)。同样,单个数组中的所有元素都是字符串值。
示例:假设有一个数组A,其元素依次为以下数组:
A[0] = ["one", "two", "three", "four"]
A[1] = ["two", "one", "three", "four"]
A[2] = ["one", "two", "three", "four"]
在上面的示例中,A [0]和A [2]是重复项,因此该函数应返回A [0]和A [1],以便同一数组只有一个实例。
将对象保留在键是每个数组的连接元素的位置。如果找不到键,则将数组添加到输出数组,然后将键添加到对象。
var hash = {};
var out = [];
for (var i = 0, l = A.length; i < l; i++) {
var key = A[i].join('|');
if (!hash[key]) {
out.push(A[i]);
hash[key] = 'found';
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句