NodeJS скрипт работает, но ничего не регистрирует - PullRequest
0 голосов
/ 19 марта 2020

поэтому я пишу функцию для получения наибольшего делителя и запускаю ее в VScode, используя скрипт $ -node команды. js она ничего не регистрирует, что мне не хватает? вот содержимое скрипта. js:


let LFfinder = num => {
    let result = num;
    for (let i = num - 1; i > 1 && result === num; i--) {
        if (num % i === 0) {
            result = i;
            return result;
        }
        if (!i) {
            return result;
        }
    }
    console.log(result);
};
LFfinder(15);

Ответы [ 3 ]

0 голосов
/ 19 марта 2020

Вам не нужно return в л oop. Из-за возврата оператор console.log никогда не достигается. И остальная часть не требуется. Это будет работать:

let LFfinder = num => {
  let result = num;
  for (let i = num - 1; i > 1 && result === num; i--) {
      if (num % i === 0) {
          result = i;
          break;
      }
  }
  console.log(result);
};

LFfinder(15);
LFfinder(19);
LFfinder(200);

Обратите внимание, что вам не нужно l oop до конца. Первый экземпляр, который вы найдете, является самым большим, поэтому сохраните дальнейшую итерацию с помощью break.

. Кроме того, лучше, чтобы функция возвращала значение, а не регистрировала ответ.

let LFfinder = num => {
  let result = num;
  for (let i = num - 1; i > 1 && result === num; i--) {
      if (num % i === 0) {
          result = i;
          break;
      }
  }
  return result;
};

console.log(LFfinder(15));
console.log(LFfinder(19));
console.log(LFfinder(200));
0 голосов
/ 19 марта 2020

работает нормально, пожалуйста, проверьте ссылку, я пробовал https://repl.it/@HarshSrivastav1 / playsams

0 голосов
/ 19 марта 2020

Вы пишете console.log () в месте, где управление не достигает, согласно вашей логике c. Попробуйте написать, прежде чем вернуть значение

let LFfinder = num => {
    let result = num;
    for (let i = num - 1; i > 1 && result === num; i--) {
        if (num % i === 0) {
            result = i;
            console.log(result);
            return result;
        }
        if (!i) {
         console.log(result);
            return result;
        }
    }

};
LFfinder(15)
...