数组对象合并属性值
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' }
]