Проверка на пустой массив

189
12 января 2019, 23:20

Возникла непонятная ситуация: c сервера (Laravel) приходит массив с ошибками, если их нет - то пустой массив []. Все попытки проверить на пустой массив не увенчались успехом... Пример если есть ошибка:

{"email":["These credentials do not match our records."]}

Не знаю почему, но Object.keys(errors).length не работает. Пример использования:

computed: {
    error() {
        return !!Object.keys(this.errors).length;
    }
},
mounted() {
     console.log(this.errors);
     console.log(this.error)
},

В консоли:

{"email":["These credentials do not match our records."]}
true

и

[]
true
Answer 1

Можно получить ключи массива через Object.keys(errors) и проверить их длину.

const errors = {"email":["These credentials do not match our records."]} 
 
if (Object.keys(errors).length) 
  console.log('Ошибка найдена') 
   
const errors2 = {} 
 
if (Object.keys(errors2).length) 
  console.log('Во втором ошибка найдена')

Могу дать свою функцию для формирования строки сообщения из ошибок, вдруг пригодится:

function showServerError ({ data }) {
  const { errors } = data
  let message = ''
  if (errors) {
    for (let field in errors) {
      if (errors.hasOwnProperty(field)) {
        for (let error of errors[field]) {
          // можете добавить префикс field(имя поля с ошибкой) если надо
          message += `${error}\n`
        }
      }
    }
  } else {
    message = data.message
  }
  // можете вывести через alert, например
  alert(message)
}
READ ALSO
<link rel=“import”> устарел?

<link rel=“import”> устарел?

Использую Chrome Canary (которая будущая версия Chrome, которая опережает на 4 месяца stable)

180
проверка на время js

проверка на время js

Должна быть проверка на время, то есть если время больше 8 и меньше 23 то условиеВремя беру из метода Date()

151
Яндекс карты как переделать код API 1 на API 2.1?

Яндекс карты как переделать код API 1 на API 2.1?

С помощью программы API ЯндексКарт были нарезаны тайлы карты

160
Как вытащить не только текст, но и ссылки javascript

Как вытащить не только текст, но и ссылки javascript

Методом гугления(с js только начинаю знакомство) сделал для своих нужд скриптикИдея в том, что по указанным селекторам я вытаскиваю со страницы...

151