Alt Çizgi'nin _.each () işlevinin dahili olarak nasıl çalıştığından bahsetmeye değer olduğunu düşünüyorum. _.Each (liste, yineleme), iletilen listenin bir dizi nesnesi mi yoksa bir nesne mi olduğunu kontrol eder.
Listenin bir dizi olması durumunda, yinelenen bağımsız değişkenler, aşağıdaki örnekte olduğu gibi bir liste öğesi ve dizin olacaktır:
var a = ['I', 'like', 'pancakes', 'a', 'lot', '.'];
_.each( a, function(v, k) { console.log( k + " " + v); });
0 I
1 like
2 pancakes
3 a
4 lot
5 .
Öte yandan, liste argümanı bir nesne ise, yineleyici bir liste öğesi ve bir anahtar alacaktır:
var o = {name: 'mike', lastname: 'doe', age: 21};
_.each( o, function(v, k) { console.log( k + " " + v); });
name mike
lastname doe
age 21
Referans için bu, Underscore.js 1.8.3'ün _.each () kodudur.
_.each = _.forEach = function(obj, iteratee, context) {
iteratee = optimizeCb(iteratee, context);
var i, length;
if (isArrayLike(obj)) {
for (i = 0, length = obj.length; i < length; i++) {
iteratee(obj[i], i, obj);
}
} else {
var keys = _.keys(obj);
for (i = 0, length = keys.length; i < length; i++) {
iteratee(obj[keys[i]], keys[i], obj);
}
}
return obj;
};