Javascript ES2015 проверить, если один из названных ключей в объекте пуст - PullRequest
0 голосов
/ 30 мая 2018

У меня есть массив, который выглядит так, как показано ниже

process:Array[3]
0:Object
    office_id:""
1:Object
    office_id:6
2:Object
   office_id:""

Я хочу проверить, не является ли названный ключ office_id не пустым

Если я найду хотя бы один не пустой office_id, он будетверните true, если все пусто, вернет false.

По умолчанию значение office_id - пустая строка.

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

Теперь, что касается проверки, мне нужно проверить, содержит ли объектный процесс office_id счисловое значение.

Ответы [ 3 ]

0 голосов
/ 30 мая 2018

Использование простого цикла и более эффективный способ

function () {
  for(i = 0; i < process.length; i++){
    if (process[i].office_id){
      return true;
      break;
    }
  }

  return false;
}

Использование фильтра ES5

function () {
  var filteredProcess = process.filter(function(pr) {
    if (pr.office_id){
      return true;
    }
  });

  return filterProcess.length ?
    true: 
    false;
}
0 голосов
/ 30 мая 2018

Используйте Array.prototype.some, чтобы убедиться, что хотя бы один элемент массива соответствует вашему условию:

const result = yourArray.some(item => item !== '')
0 голосов
/ 30 мая 2018

Вы можете использовать немного в сочетании с javascript истинность , чтобы определить, пусто ли оно.Поскольку 0 оценивается как Falsey, вы должны рассматривать это как особый случай.См isEmpty ниже

const isEmpty = (arr) => arr.some(item => item.office_id === 0 || !!item.office_id);

// This returns false because all the elements are falsey
console.log(isEmpty([
  {
    office_id: "",
  },
  {
    office_id: undefined,
  },
  {
    office_id: null,
  },
  {
    office_id: "",
  },
]));

// This returns true because the number 6
console.log(isEmpty([
  {
    office_id: "",
  },
  {
    office_id: 6,
  },
]));

// This returns true because 0 is special cased
console.log(isEmpty([
  {
    office_id: "",
  },
  {
    office_id: 0,
  },
]));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...