1.数组去重
var arr = [1, 2, 3, 4, 5, 3, 4, 5, 6]; function uniqueArr(arrParam) { var newArr = []; ------新的数组要写到for循环外面,才是全局变量,否则是局部变量 for (var i = 0; i < arrParam.length; i++) { if (newArr.indexOf(arrParam[i]) === -1) { newArr.push(arrParam[i]) } } return newArr ------- return也需要在全部去重之后在return,否则只是return的没一个数 } console.log('uniqueArr(arr)=', uniqueArr(arr)); // [1,2,3,4,5,6]
2.用 includes 判断
var arr = [-1, 0, 8, -3, -1, 5, 5, 7]; function unique(arr) { var arr1 = []; for (var i = 0, len = arr.length; i < len; i++) { if (!arr1.includes(arr[i])) { // 检索arr1中是否含有arr中的值 arr1.push(arr[i]); } } return arr1; } console.log(unique(arr)); // -1, 0, 8, -3, 5, 7
3.用es6方法去重
Set为ES6新增的一个对象,允许存储任何类型(原始值或引用值)的唯一值:Array.from(new Set(arrParam))
var arr1 = [1, 2, 3, 4, 5, 3, 4, 5, 6];
function uniqueArr1(arrParam) {
return Array.from(new Set(arrParam))
}
console.log(uniqueArr1(arr1))