从JavaScript对象抓取所有项
这里有我的模拟数据,它是一个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;操作,我总是返回对象中的最后一项 如何提取对象中的所有项,然后从中对其执行逻辑。每个对象都会覆盖上一个对象,因为它们在同一个对象中声明 可以轻松修改结构,使每个对象都
console.log
值时,我总是得到最后一个值
Soconsole.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>')
}