2014-04-23 2 views

Répondre

48

La différence réside en ce que si la collection sur laquelle vous itérez est un objet qui a une propriété length, le _.forEach() itérera dessus comme si elle était un tableau, alors que le _.forOwn() itérera dessus comme un objet .

Supposons que vous avez l'objet:

a = { 
    x: 100, 
    y: 200, 
    length: 2 
} 

Si vous itérer dessus comme:

_.forEach(a, function(val, key) { 
    console.log('a[' + key + '] = ' + val); 
}); 

vous obtiendrez la sortie:

a[0] = undefined 
a[1] = undefined 

alors itérer dessus avec _.forOwn() vous obtiendrez le plus raisonnable:

a[x] = 100 
a[y] = 200 
a[length] = 2