{{alias}}( collection, fcn, predicate[, thisArg] ) Until a test condition is true, invokes a function for each element in a collection. The condition is evaluated *after* executing the provided function; thus, `fcn` *always* executes at least once. When invoked, both the predicate function and the function to apply are provided three arguments: - `value`: collection value - `index`: collection index - `collection`: the input collection If provided an empty collection, both `value` and `index` are `undefined`. Parameters ---------- collection: Array|TypedArray|Object Input collection over which to iterate. If provided an object, the object must be array-like (excluding strings and functions). fcn: Function The function to invoke for each element in a collection. predicate: Function The predicate function which indicates whether to stop iterating over a collection. thisArg: any (optional) Execution context for the applied function. Returns ------- out: Array|TypedArray|Object Input collection. Examples -------- > function predicate( v ) { return v !== v; }; > function logger( v, i ) { console.log( '%s: %d', i, v ); }; > var arr = [ 1, 2, 3, 4, NaN, 5 ]; > {{alias}}( arr, logger, predicate ) 0: 1 1: 2 2: 3 3: 4 4: NaN See Also --------