forEach из массива только добавляет последнее значение в javascript - PullRequest
1 голос
/ 08 мая 2020

У меня есть функция с параметрами, и я делаю forEach l oop, чтобы добавить все значения из l oop.

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

let arr = ['ab c' , '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)]. Мне нужен объединенный массив из обоих массивов.

1 Ответ

4 голосов
/ 08 мая 2020

Ваш код работает хорошо, единственное, чего вам не хватает, - это добавить ...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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...