2

""すべての値をアンダースコアを使用するように変換しようとしていますが、うまくいきfalseません。もっと簡単な方法はありますか?

var _ = require("underscore");

var test = {
    "one": "",
    "two": "",
    "three": {
        "four": ""
    },
    "five": "this string is intact"
};

最初の試み、オブジェクトを台無しにする

function z(object){ 
    return _.map(object, function(value, key, list){
        if(_.isObject(value)){
            return z(value);
        }else{
            var ret = {};
            ret[key] = (value == "") ? false : value;
            return ret;
        }
    });
}

2 回目の試行は失敗しました

var _false = function(object){
    var nb = {};
    var _false = function _false(object, parent){
        _.each(object, function(value, key, list){
            if(_.isObject(value)){
                nb[key] = {};
                return _false(value, key);
            }else{
                nb[parent] = (value == "") ? false : value;
            }
        });
    }(object);
    return nb;
}
4

2 に答える 2