原数据是这样
结果是这样
var data = [
{
base_color_name: '白底深蓝色',
base_size_code: '40',
main_ratio: '',
ratio: ''
},
{
base_color_name: '白底深蓝色',
base_size_code: '41',
main_ratio: '',
ratio: ''
},
{
base_color_name: '纯黑',
base_size_code: '41',
main_ratio: '0',
ratio: '3'
},
{
base_color_name: '纯黑',
base_size_code: '42',
main_ratio: '0',
ratio: '3'
},
{
base_color_name: '黑底深紫色',
base_size_code: '43',
main_ratio: '',
ratio: ''
},
{
base_color_name: '黑底深紫色',
base_size_code: '45',
main_ratio: '',
ratio: ''
}
]
let resultArr = data.reduce(function(a, b) {
const v = b['base_color_name']
if (!a[v]) {
a[v] = {
ratio: [],
main_ratio: []
}
}
a[v].ratio.push(b['ratio'])
a[v].main_ratio.push(b['main_ratio'])
return a
}, { })
resultArr = Object.keys(resultArr).map(function(item) {
return {
base_color_name: item,
ratio: resultArr[item].ratio,
main_ratio: resultArr[item].main_ratio
}
})
console.log(resultArr)