Есть код:
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 вместе. Почему?
Используйте 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>
Найдено даже два ответа.
1) Так как первый return относится к foreach, то можно использовать some или every. @Дмытрык
2) Для моего конкретного случая идеально подходит find вместо б. @smellyshovel
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;
}
Продвижение своими сайтами как стратегия роста и независимости