将对象常量分配给新数组,并同时遍历另一个数组

问题描述 投票:0回答:1

你好,我有这个代码

  for (let i in list) {
    db.push({
      name: list[i],
      values: []
    });

    for (let j in data) {
      db[i].values.push({
        Date: data[j].Date,
        count: parseInt(data[j][list[i]])
      });
    };
    db[i].values.pop();
  };

我正在尝试将其转换为此

  list.forEach((el, i) => {
    db.push({
      name: list[i],
      values: Array.prototype.call(data.forEach((d, j) => {
        this.push({
          Date: data[j].Date,
          count: parseInt(data[j][list[i]])
        });
      }))
    })
  })
javascript arrays object ecmascript-6 push
1个回答
0
投票

您可以切片数据以仅获取没有最后一项的项目并映射值。

let shortData = data.slice(0, -1),
    db = list.map(name => ({
        name,
        values: shortData.map(({ Date, [name]: count }) => ({
            Date,
            count: +count
        })
    });
© www.soinside.com 2019 - 2024. All rights reserved.