SOURCE

// 普通数组去重
var arr = [1,1,2,2,3,3,5,5,4,4];

// ES6 Set
function unique(arr) {
    return [...new Set(arr)];
}
console.log(unique(arr));

// indexOf
// var uniqueArr = [];
// for(let i = 0; i < arr.length; i++) {
//     if(uniqueArr.indexOf(arr[i]) === -1) {
//         uniqueArr.push(arr[i]);
//     }
// }
// console.log(uniqueArr);

// filter
// function unique(array) {
//     var res = array.filter(function(item, index, array){
//         return array.indexOf(item) === index;
//     })
//     return res;
// }
// console.log(unique(arr));

// 排序后去重
// function unique(arr) {
//     arr = arr.sort();
//     console.log("排序后的数组=>",arr);
//     let uniqueArr = [];
//     for(let i = 0; i < arr.length; i++) {
//         if(i === 0) {
//             uniqueArr.push(arr[i]);
//         }else {
//             if(arr[i] !== arr[i-1]) {
//                 uniqueArr.push(arr[i]);
//             }else {
//                 continue;
//             }
//         }

//     }
//     return uniqueArr;
// }
// console.log(unique(arr));

//Object键值对
// function unique(array) {
//     var obj = {};
//     return array.filter(function(item, index, array){
//         console.log(typeof item + JSON.stringify(item))
//         return obj.hasOwnProperty(typeof item + JSON.stringify(item)) ? false : (obj[typeof item + JSON.stringify(item)] = true)
//     })
// }
// console.log(unique(arr));


// 对象数组去重

// var str = [
//     {name: "张三",id: 1},
// 	{name: "李四",id: 2},
// 	{name: "王五",id: 3},
// 	{name: "小明",id: 2},
// 	{name: "小红",id: 1},
// ];

// indexOf
// var id = [];
// var arr = [];
// for(let i = 0; i < str.length; i++) {
//     if(id.indexOf(str[i].id) === -1) {
//         id.push(str[i].id);
//         arr.push(str[i]);
//     }
// }
// console.log(arr)

// for循环,利用对象属性的唯一性
// var res = {};
// for(let i = 0; i < str.length; i++) {
//     res[str[i].id] = str[i];
// }
// console.log(res);   // {"1":{"name":"小红","id":1},"2":{"name":"小明","id":2},"3":{"name":"王五","id":3}}
//                     // 增加了一个key值 改变了原数据结构

// Map()方法
// function getMap(str) {
//     let map = new Map();
//     for(let i of str) {
//         if(!map.has(i.id)) {
//             map.set(i.id,i);
//         }
//     }
//     str = [...map.values()];
//     return str;
// }
// console.log(getMap(str));
console 命令行工具 X clear

                    
>
console