forEach.js
var forEach = function(list, callback) {
if ( list instanceof Array ) {
var len = list.length;
for (var i=0; i<len; i++) {
callback.call(list[i], i, list[i]);
}
} else {
for (var key in list ) if ( list.hasOwnProperty(key) ) {
callback.call(list[key], key, list[key]);
}
}
};
sample.js
// 配列
var arr = ["hoo","bar","baz"];
forEach(arr, function(i, val) {
console.log(i + ":" + val);
});
// オブジェクト
var obj = { jp: "japan", us: "united states" };
forEach(obj, function(key, val) {
console.log(key + ":" + val + "=" + this);
});