从JavaScript对象抓取所有项

从JavaScript对象抓取所有项,javascript,arrays,object,Javascript,Arrays,Object,这里有我的模拟数据,它是一个JavaScript对象 当我尝试console.log值时,我总是得到最后一个值 Soconsole.log(mockData.eventInfo)返回对象{Title:“Connor”,日期:“15/06/2015”} 如果我执行console.log(mockData.eventInfo.Name;操作,我总是返回对象中的最后一项 如何提取对象中的所有项,然后从中对其执行逻辑。每个对象都会覆盖上一个对象,因为它们在同一个对象中声明 可以轻松修改结构,使每个对象都

这里有我的模拟数据,它是一个JavaScript对象

当我尝试
console.log
值时,我总是得到最后一个值

So
console.log(mockData.eventInfo)返回
对象{Title:“Connor”,日期:“15/06/2015”}

如果我执行
console.log(mockData.eventInfo.Name;
操作,我总是返回对象中的最后一项


如何提取对象中的所有项,然后从中对其执行逻辑。

每个对象都会覆盖上一个对象,因为它们在同一个对象中声明

可以轻松修改结构,使每个对象都位于数组中:

    var mockData = {
        eventInfo: {
            Title: "Adam",
            Date: "10/06/2016"
        },
        eventInfo: {
            Title: "Red",
            Date: "14/06/2016"
        },
        eventInfo: {
            Title: "Connor",
            Date: "15/06/2015"
        }
    };
现在,您可以通过以下方式对每一项进行引用:

var mockData = {
    eventInfo: [
        {
            Title: "Adam",
            Date: "10/06/2016"
        },
        {
            Title: "Red",
            Date: "14/06/2016"
        },
        {
            Title: "Connor",
            Date: "15/06/2015"
        }
    ]
};
当然,您可以在循环中对它们进行迭代:

console.log(mockData.eventInfo[0].Title);  // Adam

Javascript对象基于键值对。这意味着每个键都必须是唯一的。在您的情况下,可以多次使用“eventInfo”键。相反,请尝试将结构更改为如下所示:

mockData.eventInfo.forEach(function (item) {
    console.log(item);
});

正如其他人所说的,不能有多个相同名称的键。

var mockData = {
    eventInfo :[
      {
       Title: "Adam",
       Date: "10/06/2016"           
      },
      {
       Title: "Red",
       Date: "14/06/2016"           
      },
      {
       Title: "Connor",
       Date: "15/06/2015"           
      }
    ]
}

然后,您可以以mockData.eventInfo[0]、mockData.eventInfo[1]等形式访问所有内容。这样还可以轻松地循环访问这些内容。

Javascript对象不能有重复的键

下面是一个小片段,用于迭代对象并检索其值

var mockData = {
    eventInfo: [
    {
        Title: "Adam",
        Date: "10/06/2016"
    },
    {
        Title: "Red",
        Date: "14/06/2016"
    },
    {
        Title: "Connor",
        Date: "15/06/2015"
    }]
};
var mockData={
事件信息:{
标题:“亚当”,
日期:“2016年6月10日”
}
};
var m=(mockData.eventInfo)//mockData是一个包含其他对象的对象
//用于..在循环中仅迭代可枚举属性
对于(m中的var prop){
文件写入(“”+m[prop]+“”)
}

对象中的键是唯一的,同一对象中不能有两个完全相同的键名

每次在对象文本中写入新键时,您都在调用对象上的setter。两次写入同一对象键将导致两次写入同一键,因此最后一次写入将始终获胜,因为它是最后一次写入同一键


您需要做的是将它们分组到一个数组中,因为它们具有相同的名称。

每个值不能有相同的键,您需要不同的键。是的,您可以将mockData设置为一个对象数组,然后遍历它们。这是一个对象文本,而不是JSON。
var mockData = {
        eventInfo: {
            Title: "Adam",
            Date: "10/06/2016"
        }
    };

var m = (mockData.eventInfo) // mockData is object contains other object
//Use for..in loop only iterates over enumerable properties
for(var prop in m){ 
document.write('<pre>'+m[prop]+'</pre>')
}