Объект не равен true или false - PullRequest
0 голосов
/ 11 июля 2020

Итак, мой загруженный медиафайл (event.target.files [0]) не равен true или false. Он имеет typeof object.

Это часть некоторого состояния формы, и я хотел бы проверить объект, все ли поля не пустые "".

Я думал JS объект всегда должен === true, но, может быть, это другое для объектов 'files'?

Ответы [ 3 ]

1 голос
/ 11 июля 2020

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

Объект правдив , но не равно true, поэтому на самом деле вы делаете { ... } === true, то есть false.

Если вы хотите проверить, не является ли ни одно из значений объекта пустым, вы можете отфильтровать для пустых значений:

const empty = Object.keys(theObject).length === 0 || Object.values(theObject).filter(value => {
  return value.trim() === '';
}).length > 0;
1 голос
/ 11 июля 2020

=== тесты на равное значение и одинаковый тип ( ref ). typeof(true) равно boolean, но файл не является логическим. Таким образом, сравнение никогда не даст результата.

См. Также { ссылка }

0 голосов
/ 11 июля 2020

Чтобы проверить тип значения, вы должны написать

if( (typeof <your value>) == ("<expected type>")){
   ...
}

Например, такой оператор:

if( (typeof 42)=="number" )

is true .

Ссылка для большинства случаев typeof

...