我正在阅读一些外部JSON数据,然后通过添加关于是否选中该项目的自定义属性来尝试修改它。外部数据中不存在isChecked
属性。
我正在添加属性和值,如下所示:
this.props.information.options[optionId].isChecked = true;
问题是,当我稍后遍历options
数组时,isChecked
属性始终返回undefined
:
this.props.information.options.forEach((option, index) => {
//Check if it should be checked
var ministry = this.props.information.name;
console.log(option); //outputs object with isChecked property (see screenshot)
if (option.isChecked !== undefined) {
isChecked = option.isChecked;
}
else {
console.log(option["isChecked"]); //Always outputs undefined
}
}
所以我真的很困惑。 Firefox将该属性显示为对象的一部分,但无论是否使用,都将其作为undefined
返回。或[]符号。
有什么想法吗?
答案 0 :(得分:0)
您的情况不正确。您应该检查isChecked
是否定义。更好的是,检查它是否严格等于预期值。
var options = [{}, {}, {}];
options[0].isChecked = true;
options.forEach(function(option, index) {
if (option.isChecked === true) {
console.log('checked');
} else {
console.log('not checked');
}
});