在数组中查找非唯一值
识别 JavaScript 数组中的重复值是一项常见任务。虽然迭代数组并将每个元素与其他元素进行比较似乎是一种简单的方法,但它可能效率低下,尤其是对于大型数组。
一个优化的解决方案包括首先对数组进行排序。此步骤通过将相似的元素分组在一起,将复杂度从 O(n^2) 降低到小于 O(n^2)。
数组排序后,您可以迭代它并检查当前元素是否匹配下一个或上一个元素。如果它们相同,则该值被视为重复,可以添加到结果列表中。
const findDuplicates = (arr) => { let sorted_arr = arr.slice().sort(); let results = []; for (let i = 0; i < sorted_arr.length - 1; i++) { if (sorted_arr[i + 1] == sorted_arr[i]) { results.push(sorted_arr[i]); } } return results; };
例如,给定一个像 [9, 9, 111, 2, 3, 4, 4, 5, 7],这种方法可以有效地识别并返回重复值:[9, 4]。
通过利用排序和比较相邻元素,该解决方案提供了一种在数组中查找非唯一值的省时方法。
以上是如何有效地查找 JavaScript 数组中的重复值?的详细内容。更多信息请关注PHP中文网其他相关文章!