一、理解
根据当前数组产生一个去除重复元素后的新数组如: [6,9,8,7,2,5,6,5,4,5,6,4,5] ==> [6,9,8,7,2,5,4]
二、实现代码
forEach()和indexOf() 说明: 本质是双重遍历, 效率差些
function unique (array
) {
const resultArr
= []
array
.forEach(item
=> {
if (arr
.indexOf(item
)===-1) {
resultArr
.push(item
)
}
})
return resultArr
}
利用forEach() + 对象容器 说明: 只需一重遍历, 效率高些
function unique (array
) {
const resultArr
= []
const obj
= {}
array
.forEach(item
=> {
if (!obj
.hasOwnProperty(item
)) {
obj
[item
] = true
resultArr
.push(item
)
}
})
return resultArr
}
利用ES6语法 说明: 编码简洁
function unique1 (array
) {
return [...new Set(array
)]
}
function unique2 (array
) {
return Array
.from(new Set(array
))
}