要将数组中的重复项提取到一个新数组中,你可以使用多种编程语言来实现这个功能。以下是使用JavaScript语言的一个示例代码:
function extractDuplicates(arr) {
let duplicates = [];
let uniqueItems = new Set();
for (let item of arr) {
if (!uniqueItems.has(item)) {
uniqueItems.add(item);
} else {
if (!duplicates.includes(item)) {
duplicates.push(item);
}
}
}
return duplicates;
}
// 示例数组
let array = [1, 2, 3, 2, 4, 5, 4, 6, 7, 7, 8];
let duplicatesArray = extractDuplicates(array);
console.log(duplicatesArray); // 输出: [2, 4, 7]
这段代码定义了一个名为extractDuplicates
的函数,它接受一个数组arr
作为参数。函数内部使用了一个Set
对象uniqueItems
来存储遇到的唯一项,以及一个数组duplicates
来存储发现的重复项。通过遍历原数组,检查每个元素是否已经存在于uniqueItems
集合中,如果存在,则检查是否已经添加到duplicates
数组中,如果没有,则添加。
这种方法的优势在于它的时间复杂度较低,因为Set
对象的查找操作平均时间复杂度为O(1)。此外,它不会改变原数组的顺序。
应用场景包括:
如果你遇到了问题,比如重复项没有正确提取,可能的原因包括:
duplicates.includes(item)
可能在大数组中效率较低,因为它的时间复杂度为O(n)。解决这些问题的方法包括:
参考链接:
没有搜到相关的沙龙
领取专属 10元无门槛券
手把手带您无忧上云