javascript - 从包含对象的嵌套数组的数组创建新对象

标签 javascript arrays

我有以下带有嵌套数组的数组:

const options = [
  [
    {
      label: "Blue",
      option_id: "1"
    },
    {

      label: "Small",
      option_id: "2"
    }
  ],
  [
    {
      label: "Red",
      option_id: "1"
    },
    {
      label: "Large",
      option_id: "2"
    }
  ]
];

我想从每一对中创建一个对象数组,例如:

[
 {
   label: ”Blue Small“,
   option_id: [1,2]
 },
...
]

编辑:感谢大家的精彩回答

最佳答案

options 数组上使用 .map,并将每个子数组reduce 为一个对象:

const options = [
  [
    {
      label: "Blue",
      option_id: "1"
    },
    {

      label: "Small",
      option_id: "2"
    }
  ],
  [
    {
      label: "Red",
      option_id: "1"
    },
    {
      label: "Large",
      option_id: "2"
    }
  ]
];
const result = options.map(arr =>
  arr.reduce(
    (a, { label, option_id }) => {
      a.label += (a.label ? ' ' : '') + label;
      a.option_id.push(option_id);
      return a;
    },
    { label: '', option_id: [] }
  )
);
console.log(result);

关于javascript - 从包含对象的嵌套数组的数组创建新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55039704/

相关文章:

java - 插入替换数组中的其他插入 - Java

javascript - IFrame 后退按钮

javascript - 可拖动的 div 不可编辑

javascript - 递归函数在对数组元素求和时根据顺序返回不同的值

javascript - 添加 HTML 按钮来处理循环数组中元素的增量

arrays - 检查非可选数组中是否存在索引

arrays - 与WCF互操作性的数组与列表

javascript - 如何使用 Javascript 从 AWS S3 检索多个对象,然后在检索到它们后执行某个函数?

javascript - 保存在任何网站上可编辑的内容所做的更改

javascript - 是否有没有 .call() 和 .apply() 方法的函数?