@Alleo_Manay

Как это работает?

Помогите понять пример. Как оно работает?
const array = [-3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];

function isPrime(num) {
  for (let i = 2; num > i; i++) {
    if (num % i == 0) {
      return false;
    }
  }
  return num > 1;
}

console.log(array.filter(isPrime)); // [2, 3, 5, 7, 11, 13]


Я хочу понять в данном случае как тут работает цикл и условие.
Почему тут:
let num = 2 
for(let i = 2; num > i; i++){
if(num % i == 0){
console.log(num)// выводит undefined
}
}

Тут:
let num = 4 
for(let i = 2; num > i; i++){
if(num % i == 0){
console.log(num)//выводит 4
}
}

А если переменная num круглое число то в консоли просто его дублирует?
  • Вопрос задан
  • 136 просмотров
Решения вопроса 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
for (let i = 2; i > 2; i++) {...}
Два никогда не бывает больше двух, поэтому цикл выполняется ноль раз, console.log вызывается столько же раз.

// выводит undefined
Это не console.log выводит undefined, а консоль браузера выводим вам результат выражения, которое вы в ней выполнили.

Вот этот код никакого undefined вам не покажет:
let num = 2 
for(let i = 2; num > i; i++){
  if(num % i == 0){
    console.log(num)// выводит undefined
  }
}
42;
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
Ваш вопрос не про алгоритм а про консоль хрома.

И всё же не понятно почему ничего не выводит.


GVmrAMg.png
Если выражение что-то возвращает - консоль выводит результат. Если выражение ничего не возвращает - консоль выводит undefined.

У вас там console.log() внутри if-а, и когда условие num % i == 0 не выпольняется, то и console.log не вызывается.

Смотрите я все починил:
let num = 2 
for(let i = 2; num > i; i++){
  if (num % i == 0){
    console.log(`число ${num} простое, так как делится на ${i} без остатка`);
  } else {
    console.log(`${num} не делится на ${i} без остатка`);
  }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@alekcena
Нелинейный наставник
С чего вы взяли что консоль выводит undefined;
Откройте консоль и напишите.
let b; // undefined
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы