オブジェクトを反復処理するとき、これら2つのメソッドの違いは何ですか?
違いは、反復対象のコレクションがlength
プロパティを持つオブジェクトである場合、_.forEach()
は配列であるかのように反復するのに対し、_.forOwn()
はオブジェクトのようにそれを反復します。
オブジェクトがあると仮定します。
_a = {
x: 100,
y: 200,
length: 2
}
_
次のように繰り返した場合:
__.forEach(a, function(val, key) {
console.log('a[' + key + '] = ' + val);
});
_
出力が得られます:
_a[0] = undefined
a[1] = undefined
_
_.forOwn()
を使用して繰り返し処理を行うと、より合理的になります。
_a[x] = 100
a[y] = 200
a[length] = 2
_