当null时,设置JavaScript对象成员的默认值

时间:2015-10-07 04:15:17

标签: javascript

我有以下JavaScript对象

myObject = {
    Fname: 'A',
    Mname: null,
    Lname: 'C',
    Email: 'AB@gmail.com',
    Address: null,
    Login: 'AB',
    Active: null
};

我希望将字段设置为默认值null,因此我的结果对象应该是这样。

Object {
    Fname: "A",
    Mname: "",
    Lname: "C",
    Email: "AB@gmail.com",
    Address: "",
    Login: 'AB',
    Active: ""
}

有没有快速的方法可以做到这一点,因为在我的情况下,大约有80到100个对象字段。并且需要花费太多时间逐一检查字段

1 个答案:

答案 0 :(得分:3)

您可以使用Object.keysforEach,如下所示。

myObject = {
  Fname: 'A',
  Mname: null,
  Lname: 'C',
  Email: 'AB@gmail.com',
  Address: null,
  Login: 'AB',
  Active: null
};

// Get array of keys of the object
// Loop over it
Object.keys(myObject).forEach(function(e) {

  // If value of the object member is `null` set it to `''` - empty string.
  if (myObject[e] === null)
    myObject[e] = '';
});

console.log(myObject);
document.write('<pre>' + JSON.stringify(myObject, 0, 2) + '</pre>');

您还可以将regexJSON.parseJSON.stringify

一起使用
myObject = JSON.parse(JSON.stringify(myObject).replace(/:null/g, ':""'));

var myObject = {
  Fname: 'A',
  Mname: null,
  Lname: 'C',
  Email: 'AB@gmail.com',
  Address: null,
  Login: 'AB',
  Active: null
};

myObject = JSON.parse(JSON.stringify(myObject).replace(/:null/g, ':""'));

console.log(myObject);
document.write('<pre>' + JSON.stringify(myObject, 0, 2) + '</pre>');