Выводит в консоль просто 0

var numberLimit = 10;
var primes = [3, 5];
let sum = 0;
var list = [];

for (var el = 1; el < numberLimit; el++) {
  for (var i = 0; i < primes.length; i++) {
    if (el % primes[i] == 0) {
      list.push(el);
    }
  }
}
var list2 = new Set(list);

for (var b = 0; b < list2.length; b++) {
  console.log(list2[b]);
}
console.log(sum);

В консоль выводит 0. Почему ?????


Ответы (2 шт):

Автор решения: Boris Kiva

Если вы хотите вывести элементы Set, то можно сделать так

console.log(new Array(...list2).join(' '));
→ Ссылка
Автор решения: Grundy

list2 - это Set. У него нет свойства length.

Поэтому в цикл

for (var b = 0; b < list2.length; b++) {
  console.log(list2[b]);
}

выполнение даже не заходит.

Кроме того, нельзя обращаться к элементам Set по индексу, и запись list2[b] даст undefined.

Для обхода элементов Set лучше воспользоваться циклом for..of

for (var b of list2) {
  console.log(b);
}
→ Ссылка