1.原数组去重
//1.0
function arrUnique(arr) {
for (var i = 0; i < arr.length; i++) {
for (var j = i + 1; j < arr.length; j++) {
if (arr[i] === arr[j]) { //如果第一个和第二个一样,splice方法减去第二个;
arr.splice(j, 1)
j--
}
}
}
return arr
}
//1.1
function arrUnique2(arr){
for(var i = 0; i < arr.length; i++){
if(arr.indexOf(arr[i]) !== i){
arr.splice(i,1)
i--
}
}
}
2.返回新的数组
//2.1
function arrUnique(arr) {
var list = [];
for(var i = 0; i < arr.length; i++) {
// 检测err中是否有当前数组元素,如果有,不向err中添加,如果没有,向err中添加
if(list .indexOf(arr[i]) === -1) {
list .push(arr[i]);
}
}
return list
}
//2.2
function arrayUnique(arr) {
return [...new Set(arr)]
}
3.实现根据对象数组某一项去重
function unique(arr,key) {
const res = new Map();
return arr.filter(e => !res.has(e[key]) && res.set(e[key], 1))
}