去除数组中的重复元素
思路主要是遍历,然后去重
/** *数组去重 *@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