【问题标题】:Convert array of objects to a object of two arrays - tyepscript将对象数组转换为两个数组的对象 - 打字稿
【发布时间】:2021-02-24 20:28:59
【问题描述】:

我有一个输入对象数组

[
  { col1: 'col1value1', col2: 'col2value1', col3: col1value3},
  { col1: 'col1value2', col2: 'col2value2', col3: col1value2}
]

现在我想把它转换成如下两个数组的对象

columns:["col1" , "col2","col3"],
data: ["col1value1","col2value1" , "col1value3"] ,
      ["col1value2","col2value2" , "col1value2"]

有没有什么好方法或者更快的方法。因为我试图在所有值上使用 2 个 foreach 循环并创建列和数据数组

【问题讨论】:

  • 你可以使用Object.keys(yourList[0]),假设所有对象都有相同的键。然后你需要遍历数组来获取值(你可以使用Object.values())。

标签: javascript arrays typescript ecmascript-6


【解决方案1】:

使用Object.keys()方法获取所有列,使用Array.prototype.map方法遍历数组并使用Object.values()方法获取值。

const input = [
  { col1: 'col1value1', col2: 'col2value1', col3: 'col1value3' },
  { col1: 'col1value2', col2: 'col2value2', col3: 'col1value2' },
];

const columns = Object.keys(input[0]);
const data = input.map((x) => Object.values(x));
console.log(columns);
console.log(data);

【讨论】:

    猜你喜欢
    • 2018-09-18
    • 2023-02-23
    • 2018-11-28
    • 2020-08-17
    • 2020-01-19
    • 1970-01-01
    • 1970-01-01
    • 2021-05-03
    • 2018-12-04
    相关资源
    最近更新 更多