将任意结构和的层级的对象数据中的undefined和null转为空字符串或任意字符,适用于ie8
后端返回值有些是null或undefined 渲染数据判断是否有值挺麻烦
!function () {
var shuju = {
a: undefined,
b: null,
c: {
s: 1,
q: null,
},
s: [
{
a: null,
b: 1,
c: [{ s: null }, null, { a: undefined }]
}
]
}
var shuju2 = [
{ s: null }, null, 1, { a: 1 }, { s: undefined, a: [null, { a: undefined }] }
]
console.log(emptyTo(shuju), emptyTo(shuju2));
function emptyTo(mess) {
var kong = ''; // 想要转化的字符
if (mess && typeof mess == 'object') {
if (Object.prototype.toString.call(mess) == '[object Array]') { // 数组
for (var i = 0; i < mess.length; i++) {
if (mess[i]) {
if (typeof mess[i] == 'object') {
emptyTo(mess[i])
}
} else {
mess[i] = kong
}
}
} else if (Object.prototype.toString.call(mess) == '[object Object]') { //对象
for (var i in mess) {
if (mess[i]) {
if (typeof mess[i] == 'object') {
emptyTo(mess[i])
}
} else {
mess[i] = kong
}
}
}
}
return mess
}
}()