3

ポイントを超えて何かをカットするために呼び出す関数がありますが、それ自体への参照を見つけて、その参照を何とかスマートに削除する他の方法はありますか?

これが私が今使っているものです:

//Changing the max level will speed things up, but it will mean that some things might not be persisted
function cleanse(Obj, level) {
    var r, i, prims = ["string", "number", "boolean"], maxLevel = 8;
    level = level || 0;
    if (prims.indexOf(typeof Obj) !== -1) {
        r = Obj;
    } else if (Obj instanceof Function) {
        console.log("Please dont reference objects");
        return undefined;
    } else {
        if (Obj instanceof Array) {
            r = [];
        } else {
            r = {};
        }
        for (i in Obj) {
            if (Obj.hasOwnProperty(i)) {
                if (level <= maxLevel) {
                    r[i] = BackStack.cleanse(Obj[i], level + 1);
                }
            }
        }
    }
    return r;
};
4

0 に答える 0