Tengo una matriz de objetos anidados:
const array =[ { "id": 1, "time": { "timezone": "2021-09-22T05:36:22.484Z" "city": "Perth" "country:: "Australia "date": "2021/10/10" } }, { "id": 2, "time": { "timezone": "2021-10-22T03:25:26.484Z" "city": "" "country: "Americas" "date": "2021/10/10" } }, { "id": 3, "time": { "timezone": "2021-09-27T02:43:26.564Z" "city": "" "country: "" "date": "2021/10/10" } }];Quiero verificar cada valor en el objeto de tiempo para ver si existe una cadena vacía sin tener que tener múltiples || declaraciones.
Lo que he intentado usando lodash:
if(array.find((k)=> _.isEmpty(k.timezone)) || array.find((k)=> _.isEmpty(k.city)) || array.find((k)=> _.isEmpty(k.country)) || array.find((k)=> _.isEmpty(k.date))) { //do something } else { //do something else }Esto parece funcionar, pero tratar de encontrar una forma sucinta y más limpia de hacerlo, ya que podría haber más valores en el objeto de tiempo, preferiblemente en es6.
Compruebe si algunos de los Object.values de objeto de cualquiera de los .some de time incluyen la cadena vacía.
if (array.some( k => Object.values(k.time).includes('') )) { // do something } else { // do something else }