Array.prototype.removeDuplicateItem = function () {
let arr = Object.assign([],this);
const map = new Map();
arr.filter((item, index) => { return !map.has(item) && map.set(item, index) });//用map存非重复元素及它的下标
let uniqueIndexList = [...map.values()];//非重复元素的下标
const res = arr.filter((item, index) => !(uniqueIndexList.includes(index)));
arr.forEach((item, index) => {
if (!uniqueIndexList.includes(index)) {//将重复的元素移动到最后,把原来的位置置空
this[index] = null;
this.push(item);
}
})
this.splice(arr.length)//删除重复的元素
for (let i = 0; i < this.length; i++){//删除null值
if (this[i] === null) {
this.splice(i, 1);
i--;
}
}
return res
}
let arr = new Array(1, 3, 4, 4, 4, 5, 6, 7, 8, 7, 9, 3, 5, 6, 0);
arr.removeDuplicateItem()//[ 4, 4, 7, 3, 5, 6 ]
console.log(arr)//[ 1, 3, 4, 5, 6, 7, 8, 9, 0 ]
删除数组中的重复元素,并返回被删除元素的数组
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...