ObjectでもArrayでも回せるangular.forEach


angular.forEach

AngularJS 標準の Global API から、angular.forEach の紹介。

angular.forEach は、Object でも Array でも回してくれる。

angular.forEach(Object, Function)

1
2
3
4
var user = { name: 'ninja', gender: 'unknown', weapons: [ ..., ... ] };
angular.forEach(user, function(value, key) {
  // ...
});

オブジェクトを回す場合の Iterator function の引数は value, key の順。

angular.forEach(Array, Function)

1
2
3
4
var records = [ { ... }, { ... } ];
angular.forEach(records, function(record, i) {
  // ...
});

配列を回す場合の Iterator function は第1引数が配列の中身で、第2引数が配列インデックスとなる。

context の指定

第3引数に Iteration function での context (this) を指定できる。

以下、公式サイトの angular.forEach ページに掲載されているコード。

1
2
3
4
5
var values = {name: 'misko', gender: 'male'};
var log = [];
angular.forEach(values, function(value, key) {
  this.push(key + ': ' + value);
}, log);

この例だと、第3引数(context)にlogを渡していて、このlogが iterator の中での context thisとなる。