allRows[rowDiv.toString()] = rowDiv;
console.log('commence row' + allRows[rowDiv.toString()].phrases);
//not null
for(row in allRows) {
console.log('for commence ' + row.phrases);
//null
console.log(row)
//prints toString
}
rowDiv是一个具有“短语”属性的对象(我在其构造函数中将其定义为this.phrases = [],随后向其中添加了元素)。 allRows是一个包含所有rowDiv对象的对象(通过allRows [rowDiv.toString()]插入的对象= rowDiv)。为什么“行”只给我toString而不是实际对象?否则可能正在发生其他事情。
最佳答案
您只是打印出要查找的对象的键。
在您使用的字典中,您将toString()
的结果用作键。
要获取实际的对象,而不仅仅是toString()
结果,您需要使用allRows[row]
而不只是row
。
因此,例如,通过此更改,您的代码将如下所示:
allRows[rowDiv.toString()] = rowDiv;
console.log('commence row' + allRows[rowDiv.toString()].phrases);
//not null
for(row in allRows) {
console.log('for commence ' + row.phrases);
//null
console.log(allRows[row]); // CHANGE MADE HERE
//prints toString
}
关于javascript - 在JavaScript中遍历对象的属性时遇到麻烦,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23177767/