要素をプッシュするなど、ループ中に配列を変更しても安全ですか?
各メソッドにアンダースコアを使用しています
安全とはどういう意味かわかりませんが、それには正当な理由が必要です。私はそれを少しいじりました、そしてこれが私が得たものです:
_.each(a, function(el) {
if (el % 2 == 0)
a.push(el + 1);
console.log(el);
});
// logs 1, 2, 3, 4, 5
console.log(a);
// logs [ 1, 2, 3, 4, 5, 3, 5 ]
この場合、追加された要素を調べたい場合を除き、悪影響はありませんが、特定の要素を変更している場合は、より厄介な状況に陥る可能性があります。
_.each(a, function(el, index) {
a[index + 1] = el - 1;
if (el % 2 == 0)
a.push(el + 1);
console.log(el);
});
// logs 1, 0, -1, -2, -3
_.map
ほとんどのユースケースで使用する方が理にかなっています。