Как написать условие?

var num = 5,
    all = false,
    arr = [1, 5, 7, 9];

for(var i = 0; i < a.length; i++) {
    if(arr[i] == num) {
        
    }
}


Как записать условие, чтобы all стало true только в случае, если все элементы массива arr равны значению num?
  • Вопрос задан
  • 2742 просмотра
Решения вопроса 1
Deerenaros
@Deerenaros
Программист, математик, задрот и даже чуть инженер
Если хочется своего велосипеда вместо использования Array.every (спасибо @k12th ), то как-то так:
var num = 5,
    all = true,
    arr = [1, 5, 7, 9];

for(var i = 0; i < a.length && all; i++) {
    if( all )
        all = arr[i] == num;
}

Можно даже более по-извращенски:
for(var i = 0; i < a.length && (all = arr[i] == num); i++);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 5
k12th
@k12th
console.log(`You're pulling my leg, right?`);
arr.every(function (elem) { return elem === num })
Array.every
Ответ написан
Комментировать
Tyranron
@Tyranron
Вероятно, тут более разумно, проще и производительнее будет пойти от обратного.
var num = 5,
    all = true,
    arr = [1, 5, 7, 9];

for(var i = 0; i < a.length; i++) {
    if(arr[i] != num) {
        all = false;
        break;
    }
}
Ответ написан
@AVI
var num = 5,
    arr = [1, 5, 7, 9],
    all = arr.length?true:false;

for(var i = 0; i < arr.length; i++) 
    if(arr[i] != num) {
        all = false;
        break;
    }
Ответ написан
@AVI
var num = 5,
    arr = [1, 5, 7, 9];
   
all=arr.filter(function(item){ return item !=num; }).length?false:true;
Ответ написан
mlnkv
@mlnkv
JavaScript Developer
есть полезный метод у массивов js - every(), в него передается фун-ция проверки каждого значения массива и возвращает true если все элементы прошли проверку
var array = [1, 5, 7, 9],
  num = 5, all;
all = array.every(function(val){ return val == num });
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы