Improve this doc View Source

Invokes the `iterator` function once for each item in `obj` collection, which can be either an object or an array. The `iterator` function is invoked with `iterator(value, key)`, where `value` is the value of an object property or an array element and `key` is the object property key or array element index. Specifying a `context` for the function is optional.

It is worth noting that `.forEach` does not iterate over inherited properties because it filters using the `hasOwnProperty` method.

         var values = {name: 'misko', gender: 'male'};
         var log = [];
         angular.forEach(values, function(value, key) {
           this.push(key + ': ' + value);
         }, log);
         expect(log).toEqual(['name: misko', 'gender: male']);

## Usage

`angular.forEach(obj, iterator, [context]);`

### Arguments

Param | Type | Details
--- | --- | ---
obj | Object Array | Object to iterate over.
iterator | Function | Iterator function.
context (optional) | Object | Object to become context (`this`) for the iterator function.

### Returns

Object Array | Reference to `obj`.