如何从array中移除重复integer并将被移除的重复项存入新array
数组去重+提取重复项实现方案
你可以借助Set做元素出现状态标记,单次遍历就能同时得到去重后的数组和被移除的重复项数组,代码实现如下:
function dedupe(nums) { const seen = new Set() const uniqueArr = [] // 存储去重后的结果 const removedArr = [] // 存储所有被移除的重复整数 for (const item of nums) { if (seen.has(item)) { // 已经出现过的元素属于重复项,推入重复数组 removedArr.push(item) continue } // 首次出现的元素存入去重数组,标记为已出现 uniqueArr.push(item) seen.add(item) } // 可根据需求调整返回格式,这里返回对象方便取值,也可以改为返回[uniqueArr, removedArr]数组格式 return { unique: uniqueArr, removed: removedArr } }
使用示例
const testInput = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5] const res = dedupe(testInput) console.log(res.unique) // 输出:[3,1,4,5,9,2,6] console.log(res.removed) // 输出:[1,5,3,5]
内容的提问来源于stack exchange,提问作者Henry Labrada
相关产品推荐
相关产品推荐

