js中两种数组对象去重的方法
2019-04-29 本文已影响0人
程序猿阿峰
数组去重,大家可能都经常遇到过,但是数组对象去重,也不少遇到
数组对象
const myArr = [
{
id: 1,
name: 'React'
},
{
id: 2,
name: 'Vue'
},
{
id: 3,
name: 'Angular'
},
{
id: 4,
name: 'React'
}
]
第一种方法
let res = []
let obj = {}
for (let i = 0; i < arr.length; i++) {
if (!obj[arr[i].name]) { // name 对应数组中的name
res.push(arr[i])
obj[arr[i].name] = true
}
}
console.log(res)
执行结果如下
第二种方法
利用reduce方法遍历数组,reduce第一个参数是遍历需要执行的函数,第二个参数是item的初始值
let obj = {}
let newArr = []
newArr = arr.reduce((item, next) => {
obj[next.name] ? ' ' : obj[next.name] = true && item.push(next)
return item
}, [])
执行结果