去除数组中的重复元素
思路主要是遍历,然后去重
/**
*数组去重
*@param arr{Array}原始数组
*@return {Array}去重后的数组
*/
function distinctArray(arr){
var rel=[];
for(var i=0;i<arr.length;i++){
if(rel.indexOf(arr[i]) === -1){
rel.push(arr[i]);
}
}
return rel;
}
上述代码可进行简化
Array.prototype.unique = function() {
//如果数组中的某一项的在数组中第一次出现的位置和当前index不相等,说明这一项是重复的
return this.filter((item, index) => this.indexOf(item) === index)
}
也可以使用ES6中的Set,Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用
Array.prototype.uniqe=function(){
return Array.from(new Set(this));
}
关于Set的用法 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Set
浙公网安备 33010602011771号