我有一个JS对象,其中有一个名为value的属性。经过某种操作后,我正在更新对象的value属性。现在我面临一个奇怪的行为,如下。
我的代码就像;
console.log(root.formElements[key][i]); <-------- Line 1
console.log(root.formElements[key][i]["value"]); <-------- Line 2
代码行正是一个接一个。
现在在Chrome控制台中,我得到的结果如下;
第1行
{name: "campaignStartDate", label: "Campaign Start Date", type: "date", mandatory: "yes", icon: "event_note", …}
class:"s4"
classField:"startDate"
icon:"event_note"
label:"Campaign Start Date"
mandatory:"yes"
name:"campaignStartDate"
newrow:"yes"
type:"date"
value:""
第2行
01/04/2018
所以问题是,当我打印对象时,如果值为空,有什么可能,但如果我单独打印,那么下一行是否可以获得该值?
代码段;
for (var key in root.formElements) {
for(var i=0;i<root.formElements[key].length;i++)
{
root.formElements[key][i]["value"] = data[root.formElements[key][i]["classField"]];
if(root.formElements[key][i]["name"] == "campaignStartDate")
{
console.log(root.formElements[key][i]);
console.log(root.formElements[key][i]["value"]);
}
}
仅供参考我在开发Angular 4应用程序时遇到此问题。在我的应用程序中,当我期待日期字符串时,我得到对象的value属性为空。
任何帮助对我都非常有益。如果需要更多数据,请告诉我。
提前致谢。
答案 0 :(得分:3)
将鼠标悬停在Chrome控制台中的小蓝色i
图标上,您将看到解释此行为的工具提示。单击减速三角形时,将评估变量。索引&#34;值&#34;中对象的值在最初的console.log和向下旋转并检查值之间进行了更改。
请参阅:Chrome js debug - two different values at the same time
编辑:具体来说,在控制台中单击对象和数组时会对其进行评估。字符串(和其他基元)在console.log
ged。