javascript - 如何将一个对象内部的值数组分组到另一个对象数组

标签 javascript arrays json reactjs ecmascript-6

我有一个带有值数组的对象

<小时/>

{firstName: ['John', 'Mike']}, lastName: ['Doe', 'Smith']},

<小时/>

现在我有一个带有数组的空对象

<小时/>

const newData = {} newData.ppl = []

<小时/>

如何在 ppl 数组中得到这样的结果: ppl = [{firstName: 'John', lastName: 'Doe'}, {firstName: 'Mike', lastName: '史密斯'}]

最佳答案

使用 Object.entries 快速实现, reduce ,和forEach :

const srcData = {
  firstName: ['John', 'Mike'],
  lastName: ['Doe', 'Smith']
};

const ppl = Object
  .entries(srcData)
  .reduce((acc, [key, values]) => {
    values.forEach((val, i) => {
      if (i >= acc.length) {
        acc.push({});
      }
      acc[i][key] = val;
    });
    return acc;
  }, []);

console.log(ppl);

说明:

  1. 使用Object.entries将对象转换为键值对数组。
  2. 使用 .reduce 迭代构建结果数组。
  3. 使用 .forEach 循环遍历从 (1) 获得的值数组,如果结果为空,则将空对象推送到数组 (push({}))数组不够长,无法容纳当前值数组中的所有项目

关于javascript - 如何将一个对象内部的值数组分组到另一个对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55053381/

相关文章:

javascript - 用javascript控制TAB的顺序( react )

java - 如果存储的单词经常更改,那么使用字符数组或字符串是否更好?

java - 尝试解析嵌套的 json 并将其存储在嵌套的 Map 中。阅读时,它会在 map 中提供额外的值。代码、输出和 json 下面

javascript - jQuery/jQueryUI 冲突

JavaScript 全局对象窗口和窗口

java - 我的数组代码没有显示输出,我的错误/缺少是什么

java - java中如何对JSON数组进行排序

java - 如何从 Java 中的 HTTP 请求中获取 JSON 对象

javascript - 文本框宽度问题——IE

Char 数组可以容纳比预期更多的内容