【发布时间】:2016-08-29 20:07:16
【问题描述】:
我正在尝试获取数组中的长度或对象总数。 我正在创建一个 slickEventData 对象并将该对象推入 eventsArray。 所以我最终得到一个包含对象的数组。 我想获取此数组中 slickEventData 对象的总数。 当我使用长度时,我得到了错误的数字,我得到了钥匙的总数?不是对象。
我的代码
var slickEventData = {}
console.log(event);
slickEventData.module = "slick_module"
slickEventData.eventType = event.type;
slickEventData.leadboxId = "a"//container.getAttribute("data-leadbox-id");
slickEventData.advertId = advertId;
slickEventData.length = "length of event"
slickEventData.time = Date.now();
slickEventData.posted = "postedStatus"
eventsArray.push(slickEventData)
console.log("events Array " + JSON.stringify(eventsArray))
console.log("events Array length " + eventsArray.length)
if (!sessionStorage.events) {
console.log("no old events found")
sessionStorage.events = eventsArray;
console.log(sessionStorage.events);
}
else if (sessionStorage.events) {
var oldEvents = sessionStorage.events;
console.log("old events length " + oldEvents.length);
console.log("updated events array met oldData " + eventsArray);
alert(JSON.stringify(oldEvents));
//loop thru old events to add them to current events and add these to the sessionStorage
//postTrackingData(sessionStorage.events);
}
//sessionStorage.events = eventsArray;// add events to storage
console.log("session = " + (JSON.stringify(sessionStorage)))
这些是我的尝试。我猜它正在计算所有键和值以及数组作为对象,当我使用 oldEvents.length 时返回 15 个对象。 eventsArray.length 返回正确的值。 将此数组添加到 sessionStorage.events 中是否会搞砸?
我将如何查找 oldEvents 中有多少对象?
我可能完全错了
编辑:
oldEvents 返回 [object Object] 所以看起来没有多个对象 eventsArray 返回 [object Object]、[object Object] 等多个对象。
他们不应该返回相同的吗? 我只是将 eventsArray 添加到 sessionStorage 然后检索它
我的目标是在事件发生时不断将它们推送到 sessionStorage 中,而不是在刷新之间丢失它们。
【问题讨论】:
-
数组中的内容无关紧要;
array.length总是会返回该数组中的项目/对象的数量。您是否正确初始化了eventsArray? -
尝试添加一个 console.log(oldEvents) 语句(没有 JSON.stringify)。在 Chrome 或 Firefox 中,您将能够浏览阵列并方便地检查其内容。确保数组包含您所期望的。
-
嗯 oldEvents 返回 [object Object]。但是 eventsArray 返回 [object Object]、[object Object] 等。
-
console.log(
) 或 .dir() 应该以树状、可扩展的层次结构向您显示所有对象。这样你就可以准确地看到你的变量包含什么。为此使用 Chrome。最终你有一个额外的层,例如Array[Array[Obj,Obj]] 而不是预期的 Array[Obj,Obj]。检查stackoverflow.com/questions/4482950/… -
是的,我认为这也是问题所在,但由于某种原因,chrome 并不总是让我像应有的那样扩展对象。我想我要下载萤火虫看看是否会更好。就像我说的它返回 [object Object] 但它不会让我扩展它
标签: javascript arrays object