var obj = {
a: [1, 3, 4],
b: 2,
c: ['hi', 'there']
}
removeArrayValues(obj);
console.log(obj); // --> { b: 2 }
Voici mon code:Comment supprimer les valeurs de tableau d'un objet
function removeArrayValues(obj) {
for (var key in obj){
if (Array.isArray(obj[key])) delete obj[key]
//return obj[key] -> {b: 2, c: ["hi", "there"]}
}
return obj[key]
}
Pourquoi faut-il revenir et ne obj["a"]
obj["c"]
quand je retourne à l'intérieur du for/in loop
et non obj["k"]
. J'ai compris le problème juste avant que je ne le publie, mais je rencontre beaucoup ce problème avec les tableaux et les objets et je pourrais utiliser une explication de ce qui se passe ici.
On ne sait pas ce que vous n'avez pas compris. Le si retourne "vrai", "faux" et "vrai". –
* "et not obj [" k "]" * - D'où vient le ''k '' dont vous parlez? Si vous avez une déclaration 'return' * à l'intérieur de * la boucle selon la ligne que vous avez commentée, alors elle quitte la fonction immédiatement sans terminer la boucle. Notez que la valeur 'return' de votre fonction sera' undefined', parce que 'obj [key]' est indéfini après que la boucle supprime le dernier élément. – nnnnnn
Ce que je peux voir, c'est que vous avez supprimé avec succès toutes les clés d'objet qui contiennent la valeur de tableau .. Quelle est la question à nouveau? – choz