UNPKG

js-wrench

Version:

JS函数库

35 lines (33 loc) 1.01 kB
import isArray from './isArray'; import isPrimitive from './isPrimitive'; import isObj from './isObj'; import toKeys from './toKeys'; import isFn from './isFn'; import noop from './noop'; /** * @description 迭代器 * * @param {*} collection * @param {Function} iteratee * @example each([1,2,3], (v, i, arr) = { * * }) */ const each = (collection:any, iteratee:Function) => { if(!isFn(iteratee)) iteratee = noop; let result:Array<any> = []; if(isObj(collection)) result = toKeys(collection); else if(isArray(collection)) result = collection; else result = [collection]; let length:number = result.length; let index:number = 0; while(index < length) { if(isObj(collection)) { iteratee.call(null, collection[result[index]], result[index], collection); }else { iteratee.call(null, result[index], index, collection); } index++; } } export default each;