第一种
/* 数组去重思路:
1、建立新数组
2、遍历旧数组
3、往新数组中放置旧数组的元素
4、遍历新数组
5、判断如果新数组中有相同的元素,就不往新数组中放了 */
var flag = true;//新数组中没有相同的元素 var arrOld = [2, 3, 5, 4, 3, 2, 6, 8, 5, 4, 6, 2]; // 1、 var arrNew = []; // 2、 for (var i = 0; i < arrOld.length; i++) { flag = true; // 4、 for (var j = 0; j < arrNew.length; j++) { // 5、 if (arrNew[j] == arrOld[i]) { // 新数组中有相同的元素变成false flag = false; } } // 3、 if (flag) { arrNew.push(arrOld[i])// [2, 3, 5, 4, 6, 8] } }
二、set结构的重要特点:成员值唯一 用途:数组去重
let arr = [2, 3, 5, 2, 3, 5, 2, 3, 5, 2, 3, 5, 2, 3, 5]; let arrSet = new Set(arr); // console.log(Array.of(...arrSet)); console.log(Array.from(arrSet)); // set6.clear(); console.log(set6); console.log(set6.delete(20));//true console.log(set6); console.log(set6.delete("2"));//false console.log(set6);
三、 利用对象无序特征对数组去重思路:
数组->对象->数组
1、创建新数组
2、创建新对象
3、遍历旧数组
4、将旧数组中的元素当做新对象的属性名,属性值随意写
5、遍历新对象
6、将新对象中的属性当做新数组的元素即可
var arr = [100, 20, 30, 50, 30, 100, 20, 50];//[100,20,30,50] // 1、 var arrNew = []; // 2、 var objNew = {}; // 3、 for (var i = 0; i < arr.length; i++) { console.log(arr[i]); // 4、 objNew[arr[i]] = "哈哈"; } console.log(objNew); // 5、 for (x in objNew) { console.log(x); // 6、 arrNew.push(Number(x)); }