两种方法模拟 ES6  set 数组去重
            
            
              第一种,利用字符串 indexOf
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 
 | function MYSET(arr) {let str = '';
 let newArr = [];
 if (arr.length) {
 newArr.push(arr[0]);
 str += JSON.stringify(arr[0]);
 for (let i = 1; i < arr.length; i++) {
 let temp = JSON.stringify(arr[i])
 if (str.indexOf(temp) === -1) {
 str += temp;
 newArr.push(arr[i]);
 }
 }
 }
 return newArr;
 }
 let arr = [3, 1, 3, 1, 2, 2, { a: 1 }, { b: 1 }, { a: 1 }];
 console.log(MYSET(arr));
 
 | 
第二种,利用对象 key 值不重复的特点
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 
 | function MYSET(arr) {let obj = {};
 let newArr = [];
 if (arr.length) {
 newArr.push(arr[0]);
 obj[JSON.stringify(arr[0])] = arr[0];
 for (let i = 1; i < arr.length; i++) {
 let temp = JSON.stringify(arr[i]);
 if (!obj[temp]) {
 obj[temp] = arr[i];
 newArr.push(arr[i]);
 }
 }
 }
 return newArr;
 }
 let arr = [3, 1, 3, 1, 2, 2, { a: 1 }, { b: 1 }, { a: 1 }];
 console.log(MYSET(arr));
 
 |