Не происходит завершение функции после return

88
01 февраля 2021, 01:10

Есть код:

function checkUser(ctx) {
  let fileData = [1, 2, 3];
  fileData.forEach(element => {
    if (element == userId) {
      console.log("true");
      return element;
    }
  });
  console.log("false");
  return false;
}

Я ожидал увидить в консоли false или true. Но вместо true вижу true false вместе. Почему?

Answer 1

Используйте for

let fileData = [1, 2, 3], 
    userId = 3; 
function checkUser(fileData, userId) { 
    
  for (let element of fileData) { 
    if (element == userId) { 
      console.log("true"); 
      return element; 
    } 
  } 
  console.log("false"); 
  return false; 
}; 
 
 
checkUser(fileData, userId);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Answer 2

Найдено даже два ответа.

1) Так как первый return относится к foreach, то можно использовать some или every. @Дмытрык

2) Для моего конкретного случая идеально подходит find вместо б. @smellyshovel

Answer 3
function checkUser(ctx) {
let fileData = [1, 2, 3];
  for(let element of fileData){
    if (element == userId) {
      console.log("true");
      return element;
    }
  }
  console.log("false");
  return false;
}
READ ALSO
Не срабатывает join JS

Не срабатывает join JS

Нужно сформировать строку с элементов массива, добавление в массив у меня происходит через ключ элемента, массив объявляется через фигурные...

90
Вывод элементов массива у которых ключ - число с плавающей точкой

Вывод элементов массива у которых ключ - число с плавающей точкой

Создаю массив, добавляю элементы, мне необходимо иметь в ключе число с плавающей точкой, когда пытаюсь вывести все элементы в одну строку...

108
Не грузит state

Не грузит state

выкидывает исключение: Error: The value passed as the game argument (null) is not an instance of PhaserGame

122
Как послать ajax запрос методом POST?

Как послать ajax запрос методом POST?

Мне нужно что бы по нажатию на ссылку с классом like посылался запрос на страницу sitecom/api/like/ с POST параметрами comment_id = 1 (тут id комментария берется...

124