如何在Jquery中使用单行替换为“ - ”的null

时间:2017-04-01 08:03:34

标签: javascript jquery

如何在jQuery中使用单行替换null -

例如

    var obj={
        "Key1":null,
        "key2":"I have null",
        "key3":null

    }

预期产出:

var obj={
    "Key1":"-",
    "key2":"I have null",
    "key3":"-"

}

3 个答案:

答案 0 :(得分:3)

您可以使用Object.keys并检查值。带有递归函数,在迭代对象上有一个闭包。



var iter = o => k => o[k] && typeof o[k] === 'object' && Object.keys(o[k]).forEach(iter(o[k])) || o[k] === null && (o[k] = '-'),
    object = { Key1: null, key2: "I have null", key3: { kje: "test", dfasfd: null, demo: "null demo" } }; 

Object.keys(object).forEach(iter(object));
console.log(object);




基本上用ES5解决了



var object = { Key1: null, key2: "I have null", key3: { kje: "test", dfasfd: null, demo: "null demo" } }; 

Object.keys(object).forEach(function iter(o) {
    return function (k) {
        if (o[k] && typeof o[k] === 'object') {
            Object.keys(o[k]).forEach(iter(o[k]));
            return;
        }
        o[k] === null && (o[k] = '-');
    };
}(object));
console.log(object);




答案 1 :(得分:0)

这个单行功能将起作用:

function nullToDash(obj){for(e in obj){if(obj.hasOwnProperty(e) && obj[e]===null){obj[e]="-";}}}

编辑:未经授权的上述功能,以便更好地理解

function nullToDash(obj){
    for(e in obj){
        if(obj.hasOwnProperty(e) && obj[e]===null){
            obj[e]="-";
        }
    }
}

答案 2 :(得分:0)

在一行中,它看起来像

JSON.parse(JSON.stringify(obj).split(":null").join((':\"-"')));



var obj = {
  "Key1": null,
  "key2": "I have null",
  "key3": null
}

var obj1=JSON.parse(JSON.stringify(obj).split(":null").join((':\"-"')));

console.log(obj1)




使代码通用

$.each( obj, function( key, value ) {
 if (value == null) 
   value = "-";
});