目前我正在使用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],以便相同的数组只有一个实例。
for
循环就足够了。A和A[n]的大小是多少? - Pablo Lozano['one'] == ['one']; // false
。您可以编写一个使用lodash的_.isEqual
函数来比较它们的函数,或者您可以使用普通的JavaScript来完成,但这不是一个两行代码就能搞定的事情。特别是如果真正的数组比字符串列表更复杂。如果只是字符串/基元,则可以与item.join(',')
进行比较。 - Dimitar Christoff