【数组处理】从数组提取相同元素并归类

来源:互联网 发布:北京谷歌seo 编辑:程序博客网 时间:2024/06/07 05:23
var arr=[[2,445362],[3,445362],[4,445362],[5,666],[6,666],[7,669]];

var priceArray=[];
var vipArray=[];

arr.forEach(function(item){
    priceArray.push(item[1]+"");
    vipArray.push(item[0]);
})

console.log(vipArray);
console.log(priceArray);

vipArray.reverse();
priceArray.reverse();

var sameIndex=[];
for(var i=0;i<priceArray.length;i++){
   
   var index=priceArray.indexOf(priceArray[i]);
   var lastIndex=priceArray.lastIndexOf(priceArray[i]);
  
  if(priceArray[i]==-1)
     continue;
  
  while(index!=lastIndex){
      
        sameIndex.push(lastIndex);
    
      priceArray[lastIndex]=-1;
      lastIndex=priceArray.lastIndexOf(priceArray[i]);
  }
  sameIndex.push(i);
  sameIndex.push(priceArray[i]);


}
var finalStr="";


sameIndex.forEach(function(item){
  
    if(typeof item=="number"){
        finalStr+="vip"+vipArray[item]+"-"
    }else{
        finalStr+=item+","
    }
})


finalStr=finalStr.substring(0,finalStr.length-1);
var finalArray=finalStr.split(',').reverse();


console.log(sameIndex);
console.log(finalArray);


var finalStr2="";
finalArray.forEach(function(item){
  
  var arr=item.split('-');
  if(arr.length==2){
    
    finalStr2+=arr[0]+":"+arr[1]+",";
    
  }else if(arr.length==3){
    
    finalStr2+=arr[0]+"-"+arr[1]+":"+arr[2]+",";
    
  }else if(arr.length>3){
    
    finalStr2+=arr[0]+"-"+arr[arr.length-2]+":"+arr[arr.length-1]+",";
  }
  
})

finalStr2=finalStr2.substring(0,finalStr2.length-1);
document.body.innerHTML=finalStr2

//结果:vip2-vip4:445362,vip5-vip6:666,vip7:669

原创粉丝点击