方法1:
ES6
新特性
Set
Array.prototype.rmSome = function() {
return Array.from(new Set(this));
}
方法2:利用对象名唯一
Array.prototype.rmSome = function() {
let tempObj = {}
this.forEach(item => {
if (tempObj[item]) {
return
} else {
tempObj[item] = item;
}
})
return Object.values(tempObj)
}
方法3:利用数组包含
[].includes [].indexOf
Array.prototype.rmSome = function () {
let tempArr = [];
this.forEach((item, index) => {
if (tempArr.includes(item)) {
return
} else {
tempArr.push(item)
}
})
return tempArr
}
方法4: 排序比较兄弟元素
Array.prototype.rmSome = function () {
const tempArr = this.sort();
tempArr.forEach((item, index) => {
for (let i = 0; i < tempArr.length; i++) {
if (tempArr[i] == tempArr[i + 1]) {
tempArr.splice(i, 1);
i--;
}
}
})
return tempArr
}
方法5: 双循环比较
Array.prototype.rmSome = function () {
for (let i = 0; i < this.length; i++) {
const node = this[i];
for (let j = i + 1; j < this.length; j++) {
if (node === this[j]) {
this.splice(j, 1);
j--;
}
}
}
return this
}