@mr_blaze

Как проверить есть ли в ассоциативном массиве определённое значение JavaScript?

Всем привет!
Как проверить есть ли в массиве {1: "", 2: "123", 3:"",...} пустые значения?

Всем спасибо!
  • Вопрос задан
  • 1615 просмотров
Решения вопроса 2
sergiks
@sergiks Куратор тега JavaScript
♬♬
Перебрать каждое из свойств и проверить. Если оно при переводе в булево даёт false, значит, пустое.
Есть два исключения: настоящее булево false и число 0, которые не будем считать пустым значением.
var data = {1: "", 2: "123", 3:""};

function anyEmpty(obj) {
  var p, v;
  for( p in obj) {
    v = obj[p];
    if( !obj.hasOwnProperty(p)) continue;
    if( v === false || v === 0) continue;
    if( !v ) return true;
  }
  return false;
}

anyEmpty(data)  // true
Ответ написан
profesor08
@profesor08 Куратор тега JavaScript
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@undefined_title
в js {} - это обычный объект, в этом языке объекты играют две роли, как переносчики данных и как обычный объект

Object.values(obj).some(value => !value);
вернет true если есть хоть одно пустое значение, null, undefined, "", false и тд.
(Object.values(obj).filter(value => !value)).length

вернет количество пустых значений
Ответ написан
Комментировать
@eeiaao
for..in
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы