Array.from(new Set(this))
Array.prototype.unique = function() {
return Array.from(new Set(this))
}
if (!result.includes(item)) result.push(item)
Array.prototype.unique = function() {
var result = []
this.forEach(v => {
if(!result.includes(v)) result.push(v)
})
return result
}
需要注意,includes 会判断 NaN === NaN,所以结果里最多出现一个 NaN
filter() 判断 v !== context[i+1]
Array.prototype.unique = function() {
var sortArr = this.sort()
return sortArr.filter((v,i,context) => v !== context[i+1])
}
这个和 splice,reduce 的方式类似,都是先 sort,再用!==
比较当前元素和下一个元素
这里由于是使用===
来比较,所以会出现多个 NaN
Array.prototype.unique = function() {
var sortArr = this.sort(), i = 0
for(; i < sortArr.length; i++){
if(sortArr[i] === sortArr[i+1]){
sortArr.splice(i,1)
i--
}
}
return sortArr;
}
Array.prototype.unique = function() {
var sortArr = this.sort(), result = []
sortArr.reduce((v1,v2) => {
if(v1 !== v2) result.push(v1)
return v2;
})
result.push(sortArr[sortArr.length - 1])
return result
}