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

这篇博客展示了如何使用JavaScript处理数组,通过遍历和比较元素找到相同值的索引,将它们归类并形成新的字符串结构。代码示例中,作者创建了两个数组`priceArray`和`vipArray`,并通过`forEach`循环查找相同价格的元素,最后输出了归类后的结果,如'vip2-vip4:445362, vip5-vip6:666, vip7:669'。" 114808148,10625688,Python代码实现文件归类,"['Python编程', '文件操作', '编程技巧', '初学者教程']
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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值