数组对象合并属性值

spec_let arr =   [
    {spec_name:'a',spec_value:'1111111112'},
    {spec_name:'b',spec_value:'22222222222222'},
    {spec_name:'a',spec_value:'LLLLLLLLLL'},
    {spec_name:'b',spec_value:'22222222222222'},
    {spec_name:'a',spec_value:'rrrrrrrrrrrr'},
  ]

function yang(arr){
    let newArr = [];  //声明一个新数组,存放结果
    let nameArr = [];  //将newArr中的name拿出,存起来

    for(var i=0;i<arr.length;i++){
        if(nameArr.indexOf(arr[i].spec_name) === -1){
            newArr.push({
                spec_name:arr[i].spec_name,
                spec_value:arr[i].spec_value
            })
            nameArr.push(arr[i].spec_name);
        }else{
           for(let j=0;j<newArr.length;j++){
               if(arr[i].spec_name === newArr[j].spec_name){
                 newArr[j].spec_value = newArr[j].spec_value + ',' + arr[i].spec_value;
               }
           }
        }
    }
    return newArr;
}

console.log(yang(arr))
效果
[
  { spec_name: 'a', spec_value: '1111111112,LLLLLLLLLL,rrrrrrrrrrrr' },
  { spec_name: 'b', spec_value: '22222222222222,22222222222222' }
]
 

 

posted @ 2022-01-12 16:26  ㊀觉睡到小时候  阅读(56)  评论(0)    收藏  举报