javascript - 用 map (或循环)展平对象数组

标签 javascript reactjs ecmascript-6

我有一个这样的对象数组:

[
    {
        "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/

相关文章:

javascript - 如何格式化从javascript加载的网页内容?

javascript - React useLocation hook 的替代方案用于基于 url 的页面更新?

javascript - 在 React 中更新 d3 元素?

javascript - 使用 React 应用程序运行 'npm start' 时出现不必要的转义字符警告

javascript - 使 eslint 具有此规则 : react/forbid-prop-types? 的 propTypes 对象、字符串和数组有什么问题

javascript - 发生错误时不显示 iframe

javascript - bmi_SafeAddOnload 网页源自动进来

javascript - evt.preventDefault 在 IE 和 Edge 中无法处理鼠标移动事件,甚至尝试过 evt.returnValue = false;但无法阻止传播

javascript - 函数参数对象解构导致 undefined variable

javascript - 如何在完整的日历控件中获取年 View