为什么Java脚本对象与其个人属性不同?

时间:2018-06-17 13:57:17

标签: javascript angular object

我有一个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属性为空。

任何帮助对我都非常有益。如果需要更多数据,请告诉我。

提前致谢。

1 个答案:

答案 0 :(得分:3)

将鼠标悬停在Chrome控制台中的小蓝色i图标上,您将看到解释此行为的工具提示。单击减速三角形时,将评估变量。索引&#34;值&#34;中对象的值在最初的console.log和向下旋转并检查值之间进行了更改。

请参阅:Chrome js debug - two different values at the same time

编辑:具体来说,在控制台中单击对象和数组时会对其进行评估。字符串(和其他基元)在console.log ged。

时进行评估