проверить каждый элемент массива [дубликат]

avatar
arkahn jihu
8 апреля 2018 в 08:25
909
1
3

Какой наиболее эффективный способ проверить определенное условие для каждого элемента массива и вернуть false, если один или несколько элементов не соответствуют условию, например, у меня есть этот массив, например

arr = ["foo","azeaze", "wazeazerar"]
    for(var ar in arr){
      if(ar.length > 5){
        console.log(false)
      }else{
        console.log(true)
      } 
    }

, как видите, возвращает true, даже если элемент "foo" length не больше 5

Источник
Nico Haase
8 апреля 2018 в 08:28
0

Вы пытались отладить это самостоятельно, чтобы увидеть, что содержит ar?

arkahn jihu
8 апреля 2018 в 08:42
0

Он помечен как дубликат, даже если он не отвечает на мой вопрос

Nico Haase
8 апреля 2018 в 09:23
0

Конечно, это так: вы не должны использовать for... in, если хотите перебирать значения массива.

Ответы (1)

avatar
Abslen Char
8 апреля 2018 в 08:26
7

Вы можете использовать Array.prototype.every() в однострочной функции

arr = ["foo","azeaze", "wazeazerar"]

const isittrue = currentval =>  currentval.length > 2

console.log(arr.every(isittrue));

 arr = ["foo","azeaze", "wazeazerar"]
    console.log(arr.every(elem => elem.length >= 5))
arkahn jihu
8 апреля 2018 в 08:43
0

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