javascript数组去重五种方法
let arr = [12, 23, 34, 12, 12, 34, 56, 56, 56, 76]
方法一:set特性,数据不能重复
function one() { let set = new Set(arr) let arr1 = [...set] console.log(arr1); } one()
方法二:数组indexOf==-1 ---- indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。
function two() { let arr1 = [] for (let i = 0; i < arr.length; i++) { if (arr1.indexOf(arr[i]) == -1) { arr1.push(arr[i]) } } console.log(arr1); } two()
方法三:数组双重for循环+splice
function three() { 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) j--; } } } console.log(arr) } three()
方法四:对象属性特性
function four() { let obj = {}; let newArr = []; for (let i = 0; i < arr.length; i++) { if (obj[arr[i]]) { obj[arr[i]]++ } else { obj[arr[i]] = 1 newArr.push(arr[i]) } } console.log(newArr); } four()
方法五:数组includes() 方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回 false。
function five() { let newArr = []; for (let i = 0; i < arr.length; i++) { if (!newArr.includes(arr[i])) { newArr.push(arr[i]) } } console.log(newArr); }