所以我有这个对象例如:
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而不是空数组。
我该如何解决这个问题?我错过了什么吗?
答案 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;
}