// 普通数组去重
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