<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>js数组去重</title>
</head>
<body>
</body>
<script>
/* #jiben */
// 去重前
// const arr1 = [1, 2, 3, 1, 2, 3, 3, 2, 2, 1, 2, 1, '3', '1', '3']
// 去重后
// console.log(fn(arr1));
// 1. new Set
// function fn(arr) {
// return [...new Set(arr)]
// }
// function fn(arr) {
// return Array.from(new Set(arr))
// }
// 2. 准备一个空数组 + 遍历要去重的数组拿到每一个元素(for forEach reduce) + 判断这个空数组中没有这个元素就push添加进去(includes indexOf)
// function fn(arr) {
// const newArr = []
// for (let i = 0; i < arr.length; i++) {
// if(!newArr.includes(arr[i])){
// newArr.push(arr[i])
// }
// }
// return newArr
// }
// function fn(arr) {
// const newArr = []
// arr.forEach(e => {
// if(newArr.indexOf(e) === -1){
// newArr.push(e)
// }
// })
// return newArr
// }
// function fn(arr) {
// return arr.reduce((newArr,next) => {
// if(!newArr.includes(next)) {
// newArr.push(next)
// }
// return newArr
// },[])
// }
// 3. 双重循环 + splice
// function fn(arr) {
// for(let i = 0;i<arr.length;i++){
// for(let j = i+1;j<arr.length;j++){
// if(arr[i] === arr[j]){
// arr.splice(j,1)
// }
// }
// }
// return arr
// }
/* #jiben */
/* #obj */
// 去重前
// var arr = [
// {
// "id": "1001",
// "value": "111"
// },
// {
// "id": "1001",
// "value": "11111"
// },
// {
// "id": "1002",
// "value": "25462"
// }
// ];
// 去重后
// console.log(fn(arr));
// function fn(arr) {
// const obj = {}
// return arr.reduce((newArr, next) => {
// if (!obj[next.id]) {
// newArr.push(next)
// obj[next.id] = next.id
// }
// return newArr
// }, [])
// }
// function fn(arr) {
// const obj = {}
// const newArr = []
// // for(let i = 0;i<arr.length;i++){
// // if(!obj[arr[i].id]){
// // newArr.push(arr[i])
// // obj[arr[i].id] = arr[i].id
// // }
// // }
// arr.forEach(element => {
// if(!obj[element.id]){
// newArr.push(element)
// obj[element.id] = element.id
// }
// })
// return newArr
// }
// function fn(arr) {
// var obj = {};
// var dest = [];
// for (var i = 0; i < arr.length; i++) {
// if (!obj[arr[i].id]) {
// dest.push({
// id: arr[i].id,
// data: [arr[i]]
// })
// obj[arr[i].id] = arr[i].id;
// } else {
// for (var j = 0; j < dest.length; j++) {
// if (arr[i].id == dest[j].id) {
// dest[j].data.push(arr[i]);
// break;//找到同样id的之后 后面的就不用循环了 所以跳出循环
// }
// }
// }
// }
// return dest;
// }
/* #endobj */
</script>
</html>
10-18
200