• 遍历对象属性

    代替Object.keys(obj).forEach

    类型参数

    • T extends object

    参数

    • obj: T

      要遍历的对象

    • callbackFn: ((value: T[keyof T], key: keyof T, obj: T) => false | void)

      返回false的时候中断

        • (value, key, obj): false | void
        • 参数

          • value: T[keyof T]
          • key: keyof T
          • obj: T

          返回 false | void

    • 可选elseCB: (() => any)

      遍历完后执行

        • (): any
        • 返回 any

    返回 boolean

    isDone

    const obj = { a: 1, b: 2, c: 3 };
    function feo(obj: object) {
    const arr: any[] = [];

    forEachObj(obj, (v, k, obj) => {
    arr.push([v, k, obj]);
    });
    return arr;
    }

    isEqual(feo(obj),
    Object.keys(obj).reduce((res, key) => {
    res.push([obj[key], key, obj]);
    return res;
    }, [] as any[]),
    ); // true

    feo(obj).length; // 3
    // 不会遍历继承的属性
    feo(Object.create(obj)).length; // 0