【问题标题】:forEach from array only adding last value in javascript来自数组的 forEach 仅在 javascript 中添加最后一个值
【发布时间】:2020-05-08 18:57:01
【问题描述】:

我有一个带参数的函数,我正在执行一个 forEach 循环来添加循环中的所有值。

const data = (sd) => Object.entries(obj).map(([k, g]) => ({
            ['name']: k,
            ['data']: g.map(entry => entry[sd]),
            ['type']: sd
        }));

让 arr = ['abc', 'xyz'];

let x;
arr.forEach(y => {
  x = [...data(y)];
});
console.log(x);

如果我这样做,我只会得到xyz 的值。

如果我这样做:

let x;
arr.forEach(y => {
  x.push(data(y));
});
console.log(x);

我收到[Array(15), Array(15)]。我想要两个数组的合并数组。

【问题讨论】:

    标签: javascript jquery arrays object ecmascript-6


    【解决方案1】:

    您的代码做得很好,您唯一缺少的是在第一种方法中添加...x。并在第二种方法中添加扩展运算符。 这两种方法都应该适合你这样做。

    let x = [];
    arr.forEach(y => {
      x = [...x, ...data(y)];
    });
    console.log(x);
    

    let x = [];
    arr.forEach(y => {
      x.push(...data(y));
    });
    console.log(x);
    

    【讨论】:

      猜你喜欢
      • 2020-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      相关资源
      最近更新 更多