我有一个这样的对象数组:
[
{
"dow": 0,
"min_price": 2000,
"max_price": 4000,
"is_enable": true
},
{
"dow": 1,
"min_price": 500,
"max_price": 3000,
"is_enable": true
},
{
"dow": 2,
"min_price": 500,
"max_price": 3000,
"is_enable": true
},
{
"dow": 3,
"min_price": 1000,
"max_price": 3000,
"is_enable": true
}
]
我怎样才能把它变成这样的东西?顺序无关紧要。
{
advancePrice_0_max: 4000,
advancePrice_0_min: 2000,
advancePrice_1_max: 3000,
advancePrice_1_min: 500,
advancePrice_2_max: 3000,
advancePrice_2_min: 500,
advancePrice_3_max: 3000,
advancePrice_3_min: 500
..
..
}
我试着从这个开始,但即使下面的代码也有 snytax 错误。
let temp = {};
if (!isEmpty.custom_pricing) {
temp = custom_pricing.map(obj => {
`advancePrice_${obj.dow}_min`: obj.min_price,
`advancePrice_${obj.dow}_max`: obj.max_price
})
console.log(temp);
}
但我卡住了,不知道如何继续..
最佳答案
您想将数组缩减为单个对象,因此:
var result = data.reduce(function (acc,el,i) {
acc['advancedprice_' + i + '_max'] = el.max_price;
acc['advancedprice_' + i + '_min'] = el.min_price;
return acc;
}, {});
关于javascript - 用 map (或循环)展平对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43966558/