如何在jQuery中使用单行替换null
-
例如
var obj={
"Key1":null,
"key2":"I have null",
"key3":null
}
预期产出:
var obj={
"Key1":"-",
"key2":"I have null",
"key3":"-"
}
答案 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 = "-";
});