数组去重-数据去重的四种方法

第一种:利用hash的原理去重即排序

 

var arr=[1,1,1,2,2,2,55,5,4,4,88];
var brr=[];
//去重复,利用相同下标的多次赋值以最新的为准;
for(var i=0;i<arr.length;i++){
brr[arr[i]]=arr[i];//这个命令主要是去重;因为brr的下标会arr的元素;如果出现元素重复,那么视为下标相同;
}
console.log(brr);//此时得到数组是一个被扩大化的索引数组,所以我们要重新处理取出有效元素形成新数组
var crr=[];
for(var j=0;j<arr.length;j++){
if(brr[j]!=undefined){
crr.push(brr[j]);
}
}
console.log(crr);
brr=null;

 

第二种:利用splice来进行数组去重

                       var arr=[1,1,1,2,2,2,55,5,4,4,88];

for(var n=0;n<arr.length;n++){

     for(var j=arr.length;j>n;j--){
    if(arr[n]==arr[j]){
  arr.splice(j,1)
}
}
}

console.log(arr)

第三种:以hash数组天然去重的特性;我们需要将索引数组arr转化为hash数组;

var arr=[1,1,1,2,2,2,55,5,4,4,88];
var nrr=[];
for(var n=0;n<arr.length;n++){
nrr["n"+arr[n]]=arr[n];//此时得到的是一个hash数组;
}
console.log(nrr);
arr=[];
//转化为做引数组;
for(var key in nrr){
arr.push(nrr[key]);
}
console.log(arr);

第四种:最简式的一种;两两对比;去除不相同的元素;

var arr=[1,1,1,2,2,2,55,5,4,4,88];
var brr=[];
for(var i=0;i<arr.length;i++){
if(arr[i]!=arr[i+1]){
brr.push(arr[i]);
}
}
console.log(brr);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值