JavaScript:删除数组中的重复项

卡蒂亚·亚伯(Katia Abel)

当前正在使用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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章