1
votes

JS - Vérifie si le tableau à l'intérieur d'un objet est vide

Comment puis-je faire une boucle et vérifier si un ou certains tableaux à l'intérieur d'un objet JavaScript est vide?

c'est-à-dire

const store = {
shirts : [],
shoes: ['nike', 'puma', 'addidas']
hats: [],
jerseys: ['barcelona', 'milan', 'arsenal']
}


0 commentaires

5 Réponses :


1
votes

const store = {
shirts : [],
shoes: ['nike', 'puma', 'addidas'],
hats: [],
jerseys: ['barcelona', 'milan', 'arsenal']
}

for(let item in store){
  if(store[item].length == 0)
    console.log(item)
}

Chaque élément vide sera enregistré dans la console


0 commentaires

2
votes

Récupérez les valeurs de l'objet en utilisant Object.values ​​() . Vérifiez si au moins l'un d'entre eux est un tableau avec la longueur de 0 en utilisant some et Array.isArray ()

const store = {
  shirts: [],
  shoes: ['nike', 'puma', 'addidas'],
  hats: [],
  jerseys: ['barcelona', 'milan', 'arsenal']
}

console.log(
  Object.values(store).some(v => Array.isArray(v) && v.length === 0)
)


0 commentaires

1
votes

Voici une seule ligne:

const main = o => Object.entries(o).some(([k,a])=>!a.length);

console.log(
  main({x: [1,2,3],y: [123],}), // false
  main({x: [1,2,3],y: [],}), // true
  main({x: [],y: [],}), // true
);


0 commentaires

1
votes

Si vous souhaitez obtenir les clés vides, vous pouvez utiliser la méthode de filtrage

const store = {
  shirts : [],
  shoes: ['nike', 'puma', 'addidas'],
  hats: [],
  jerseys: ['barcelona', 'milan', 'arsenal']
}

const emptyKeys = Object.keys(store).filter((key) => {
                     if (store[key].length == 0) { 
                       return key; 
                     } 
                   });

console.log(emptyKeys);


0 commentaires

2
votes

Si vous voulez juste savoir s'il existe un tableau vide, val sera vrai si l'un des tableaux est vide, sinon faux.

val = Object.keys(store).some(key => store[key].length === 0)


0 commentaires