您的位置:首页 > 其它

数组去重

2018-01-23 09:56 120 查看
第一种情况: 数组类型为数组对象,如果对象里面的每个属性值都相等则去掉,如果只是部分的属性相同,则不去掉

var cat = [
{name : "aaa",age : 20},
{name : 'aaa',age : 30},
{name : 'bbb',age : 40},
{name : 'aaa',age : 30}
];

//第一项和第四项相同,去掉第四项
Array.prototype.unique = function (arr) {
var res = [arr[0]];
for(var i=1;i<arr.length;i++){
var flag = false;
for (var j=0;j<res.length;j++){
if(arr[i].name == res[j].name && arr[i].age == res[j].age){
flag = true;
break;
}
}

if(!flag){
res.push(arr[i]);
}
}

return res;
};

console.log(cat.unique(cat));


第二种情况 : 数组类型,只是基本的数组类型

var arr = [1,2,5,2,4,6,1];
Array.prototype.unique = function () {
var res = [th
4000
is[0]];
for(var i=1;i<this.length;i++){
var flag = false;
for (var j = 0;j<res.length;j++){
if(this[i] == res[j]){
flag = true;
break;
}
}

if(!flag){
res.push(this[i]);
}
}
return res;
}

console.log(arr.unique());


最简单的一种数组去重

function  unique1(arr) {
var newArr = [];
for(var i = 0 ; i < arr.length ; i++){
var item = arr[i];
if(newArr.indexOf(item) == -1) newArr.push(item);
}
return newArr;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数组 排序 数组对象