const unique = (origin) => {
let result = []
for (var i = 0; i < origin.length; i++) {
for (var j = 0; j < result.length; j++) {
if (origin[i] === result[j]) break
}
result.push(origin[i])
}
return result
}
indexOf(IE8 及更早版本不支持)
const unique = (origin) => {
let result = []
for (var i = 0; i < origin.length; i++) {
let item = origin[i]
if (result.indexOf(item) === -1) result.push(item)
}
return result
}
filter(IE9+)
const unique = (origin) => {
let result = origin.filter((item, index, array) => {
// 只返回那些索引等于当前元素索引的值
return array.indexOf(item) === index
})
return result
}
Object 的 key value
const unique = (origin) => {
let result = []
let hashTable = {}
for (var i = 0; i < origin.length; i++) {
let current = origin[i]
//数字1和字符串'1',在键中是相等的,区分这种情况
let key = typeof current + current
if (!hashTable[key]) {
hashTable[key] = true
result.push(current)
}
}
return result
}