如何在JavaScript中将对象属性设置为null和空白数组?

时间:2017-05-01 02:48:49

标签: javascript arrays json object

所以我有这个对象例如:

java.awt.Rectangle[x=270,y=288,width=213,height=98]
java.awt.Rectangle[x=296,y=144,width=238,height=106]
java.awt.Rectangle[x=270,y=288,width=230,height=108]

我将值设置为null的方式如下:

family_background: {
      children: [],
      spouse_surname: null,
      spouse_first_name: null,
      spouse_first_name: null,
      spouse_middle_name: null,
      spouse_occupation: null,
      spouse_employer: null,
      // so forth and so on
}

但是我有一个等于数组的属性,通过循环,它会将属性设置为null而不是空数组。

我该如何解决这个问题?我错过了什么吗?

2 个答案:

答案 0 :(得分:2)

在设置值之前,使用Array.isArray检查属性是否为数组:

for (var key in family_background) {
    family_background[key] = Array.isArray(family_background[key]) ? [] : null;
}

Array.isArray的MDN文档:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray

答案 1 :(得分:2)

检查值是否为instanceof Array,如果是,请将其设置为空数组。

for (var key in family_background) {
    family_background[key] = family_background[key] instanceof Array
        ? []
        : null;
}