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'] }
5 Réponses :
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
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) )
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 );
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);
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)