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

时间:2020-05-15 16:18:31

标签: javascript arrays object ecmascript-6 push

你好,我有这段代码,它正在有效

  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]])
        });
      }))
    })
  })

1 个答案:

答案 0 :(得分:0)

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

let shortData = data.slice(0, -1),
    db = list.map(name => ({
        name,
        values: shortData.map(({ Date, [name]: count }) => ({
            Date,
            count: +count
        })
    });