Quelle est la différence entre ces deux méthodes lors de l'itération sur un objet?
La différence réside dans le fait que si la collection sur laquelle vous êtes en train d'itérer est un objet qui a une propriété length
, alors la _.forEach()
l'itérera comme s'il s'agissait d'un tableau, tandis que le _.forOwn()
itérera dessus comme un objet.
Supposons que vous ayez l'objet:
a = {
x: 100,
y: 200,
length: 2
}
Si vous le répétez comme:
_.forEach(a, function(val, key) {
console.log('a[' + key + '] = ' + val);
});
vous obtiendrez une sortie:
a[0] = undefined
a[1] = undefined
alors qu'en itérant dessus avec _.forOwn()
vous obtiendrez le plus raisonnable:
a[x] = 100
a[y] = 200
a[length] = 2