1.ES6去重
{
function uniqe(arr) {
return Array.from(new Set(arr))
}
console.log(uniqe([1,1,12,2,2,3]))
}
2.使用indexOf()方法
{
/**
*
* @param {*} indexOf(value,fromIndex)
* 返回指定字符串在字符串中首次出现的位置
* 如果没有出现的话,该方法返回-1
*/
function uniqe(arr) {
var ret = []
for (var i=0;i<arr.length;i++) {
if(ret.indexOf(arr[i]) == -1) {
ret.push(arr[i])
}
}
return ret;
}
console.log(uniqe([1,1,12,2,2,3]))
}
3.数组forEach方法
{
function uniqe(arr) {
var ret = []
arr.forEach(function(element, idx, arr) {
if(arr.indexOf(element) == idx) {
ret.push(element)
}
}, undefined)
return ret
}
console.log(uniqe([1,1,12,2,2,1,3]))
}
4.添加原型方法
{
Array.prototype.uniqe = function(){
var ret = []
var end;
this.sort()
console.log(this)
end=this[0]
ret.push(this[0])
for (var i=1;i<this.length;i++){
if (this[i] != end) {
ret.push(this[i])
end = this[i]
}
}
return ret
}
console.log([1,1,12,2,1,2,3].uniqe())
}
网友评论