1.利用set集合对象的值是唯一的特新
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Set
var arr = [1,4,5,3,2,1,4,2,2];
var newArr = [...new Set(arr)];
2.正则数组去重 (方法不错)
Array.prototype.unique3=function(){
return this.sort().join('').replace(/(.).*\1/g,"$1").split('');
}
3. 遍历查找,通过新的数组保存非重复的值
function removeRepeat1(data) {
var result = [];
data.forEach(function(value) {
if ( !result.includes(value) ) {
result.push(value);
}
});
return result;
}
4. 利用对象key不重复的特性,把值做对象key进行存储
function removeRepeat2(data) {
var obj = {};
var result = [];
data.forEach(function(value) {
obj[value] = 1; //对象的值并不重要,所以给任何的值都行
});
//最后obj的key就是我们要的不重复的数据
for (var key in obj) {
result.push(Number(key));
}
return result;
}
5. 遍历比较,删除重复的值
function removeRepeat3(data) {
for (var i=0; i<data.length; i++) {
for (var j=i+1; j<data.length; j++) {
if (data[i] == data[j]) {
data.splice(j, 1);
j--;
}
}
}
return data;
}
网友评论