普通数组数组对象去重的⼏种⽅法
⼀、数组去重
  (1)ES5⽅法!利⽤ filter 和 indexOF⽅法
let arr = [1, 1, 2, 3, undefined, null, null, 23, 'g', 'g']
function uniq (array){
return [].filter.call(array, function (item, index) {
return array.indexOf(item) == index
})
}
console.log(uniq(arr)) // [1, 2, 3, undefined, null, 23, "g"]
  (2)ES6⽅法!利⽤ new Set()⽅法配合ES6 展开运算符:Set对象允许你存储任何类型的唯⼀值,⽆论是或者是对象引⽤let arr = [1, 1, 2, 3, undefined, null, null, 23, 'g', 'g']
console.log([...new Set(arr)]) // [1, 2, 3, undefined, null, 23, "g"]
  (3)ES6⽅法!利⽤ reduce
filter过滤对象数组(1)对普通数组去重
let arr = arr = [1, 2 , 2, ,3, 2 ,4 ,1, 1, 1, 2]
let newArr = duce(function (item, next) {
obj[next] ? '' : obj[next] = true && item.push(next)
return item
}, [])
console.log(newArr) // [1, 2, 3, 4]
(2)数组对象去重
let arr2 = [
{id: 1},
{id: 1},
{id: 1},
{id: 2},
{id: 4},
]
let newArr2 = duce(function (item, next) {
console.log(item)
obj[next.id] ? '' : obj[next.id] = true && item.push(next)
return item
}, [])
console.log(newArr2)
⼆、数组某项第⼀个查
  find()⽅法返回数组中满⾜提供的测试函数的第⼀个元素的值。否则返回。const array1 = [5, 12, 8, 130, 44];
const found = array1.find(item => item > 10);
console.log(found); // 12
三、数组遍历,可中断和不可中断循环
  除了简单的 for , do...while 循环外,还有 forEach,map
  for 可以⽤ break 跳出循环遍历外,forEach,map 不能跳出遍历,
let arr = [1, 1, 2, 3, undefined, null, null, 23, "g", "g"]
for (let i = 0, len = arr.length; i < arr.len; i++) {
console.log(i) // 0, 1, 2, 3
if (i === 3) {
break // 注意仅可⽤ break退出循环
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。