Dans Javascript, j'ai un objet JSON à partir duquel je veux traiter uniquement les éléments:
print json.items() [{stuff: 'stuff'},{stuff: 'stuff'},{stuff: 'stuff'},{stuff: 'stuff'}]
5 Réponses :
Je ne sais pas ce que vous voulez faire mais je suppose que JSON.Stringify fera quelque chose comme ça. Voir http://www.json.org/js.html p>
Vous ne pouvez pas faire cela de la même manière que dans Python sans extension d'objet.Prototype, que vous ne voulez pas faire, car c'est le chemin de la misère.
Vous pouvez créer une fonction d'aide facilement qui pourrait facilement boucler Cependant, l'objet et mettez la valeur dans un tableau, comme ceci: p> ps: JSON est un format de données, ce que vous avez est un objet littéral. P> < / p>
Point pris sur l'objet littéral, ils sont si étroitement liés à JS que vous pourriez me pardonner sur celui-là.
in python Si vous m'excuserez un petit code Python pour montrer la différence. P> dict.items code> renvoie une liste de tuples contenant à la fois les touches et les valeurs du
dict code>. JavaScript n'a pas de tuples, il faudrait donc être un tableau imbriqué.
Object.entries({1:1, 2:2, 3:3})
.forEach(function(v){
console.log(v)
});
Vous devriez laisser tomber ce .HASOWNPROPERTY () code> appel. Il n'y a pas d'avantage.
Non, c'est juste c'est assez inutile de là-bas. À quoi sert la condition? Les objets habituels que vous souhaitez énumérer n'auront pas hérité de propriétés énumérables. Et si vous voulez défendre contre ceux qui ont, vous voulez sûrement vous défendre contre ceux qui ont . ShasownProperty code> propriétés également.
oh ok merci. Je suppose que cela exclurait les propriétés d'une classe mère. Je suis un relatif noob à JavaScript, alors ne le sais pas beaucoup.
S'oser ces choses ne sont que simplement Objet CODE> 'S DROITE Alors n'aura que quelque chose qui vaut la peine d'être exclu.
Grâce aux mises à jour récentes de JavaScript - nous pouvons résoudre ce problème maintenant:
function items(iterable) { return { [Symbol.iterator]: function* () { for (key in iterable) { yield [key, iterable[key]]; } } }; } for (const [key, val] of items({"a": 3, "b": 4, "c": 5})) { console.log(key, val); } // a 3 // b 4 // c 5 for (const [key, val] of items(["a", "b", "c"])) { console.log(key, val); } // 0 a // 1 b // 2 c
Ceci est l'équivalent de énumérer code> en python, pas ce que l'OP a demandé
Dans JS, un tableau est un objet ressemblant à une liste où les clés sont les indices. Pour aider à éviter la confusion, j'ai ajouté un exemple de fonction d'éléments avec un objet. @IuliusCurt fyi
La réponse de Ubershmekel utilise une évaluation paresseuse, par rapport à ma réponse ci-dessous qui utilise l'évaluation désireuse. L'évaluation paresseuse présente de nombreux avantages qui le rendent beaucoup plus approprié pour des raisons de performance dans certains cas, mais la transparence de l'évaluation désireuse peut être une frontale de vitesse de développement pouvant le rendre préférable dans d'autres cas.
const keys = Object.keys; const values = object => keys(object).map(key => object[key]); const items = object => keys(object).map(key => [key, object[key]]) obj = {a: 10, b: 20, c: 30}; keys(obj) // ["a", "b", "c"] values(obj) // [10, 20, 30] items(obj) // [["a", 10], ["b", 20], ["c", 30]] items(obj).forEach(([k, v]) => console.log(k, v)) // a 10 // b 20 // c 30
Je devrais probablement ajouter que la la raison i> Je veux faire, c'est que je puisse trier le tableau (les clés ne sont que des uids), alors peut-être que j'aurais dû demander "comment trier les articles dans un Array associativ ".
La question est incorrecte.
dict.items de Python () code> renvoie une liste des tuples (touches, de la valeur). Votre exemple de Reval correspond à
dict.values () code>.