首页 > 解决方案 > 使用 es6 更好地映射两个不同的对象

问题描述

我能够实现我的目标,我分裂list[0]and [1],我在想也许 es6 有更好的解决方案?谢谢

const list = [
  [
      { value: 'Apple' },
      { value: 'Banana'},
      { value: 'Orange'},
      { value: 'Grape' },
  ],
  [
      {value: 'color is Red' },
      {value: 'color is Yellow'},
      {value: 'color is Orange'},
      {value: 'color is green'},
  ]]


const a = list[0];
const b = list[1];


const c = a.map(({value}, index)=>{
  return {[value] : b[index].value};
})

console.log(c)

预期的结果是

[
  {
    "Apple": "color is Red"
  },
  {
    "Banana": "color is Yellow"
  },
  {
    "Orange": "color is Orange"
  },
  {
    "Grape": "color is green"
  }
]

标签: javascriptecmascript-6

解决方案


您可以使用数组解构来做到这一点。

const [first, second] = list;
first.map(({value}, index) => {
  return {[value] : second[index].value};
});

推荐阅读