javascript递归函数的深度

时间:2016-11-17 12:00:51

标签: javascript underscore.js

我正在尝试在mongodb中保存json结构,但是我希望在循环遍历此函数时获得每个项目具有的递归深度(DEPTH)。如何重复使用以下功能?:

_.mixin({
    importJsonItemsToMongo: function (obj, opt, iterator) {
        function recurse (json_item) {
            // console.log(`level ${DEPTH}: ${json_item.name}`);
            db.collection('json_import_items').insert(json_item);
            _.each(json_item.child_items, _.importJsonItemsToMongo);
        };
        recurse(obj);
    }
});
_.each(jsonResponse.child_items, _.importJsonItemsToMongo);

2 个答案:

答案 0 :(得分:1)

我不知道underscore.js是如何工作的,但我想,可以这样做:

find

我刚刚添加了深度参数;并删除了未使用的参数,如果需要,可以将其添加回来。

答案 1 :(得分:0)

尝试关闭深度。

_.mixin({
    importJsonItemsToMongo: function(DEPTH) {
        return function (obj, opt, iterator) {
            function recurse (json_item) {
                // console.log(`level ${DEPTH}: ${json_item.name}`);
                db.collection('json_import_items').insert(json_item);
                _.each(json_item.child_items, _.importJsonItemsToMongo(DEPTH + 1));
            };
            recurse(obj);
        };
    }
});
_.each(jsonResponse.child_items, _.importJsonItemsToMongo(0));