gpt4 book ai didi

javascript - 获取对象内数组中的总对象数

转载 作者:行者123 更新时间:2023-12-03 07:01:40 24 4
gpt4 key购买 nike

我正在尝试获取数组内的长度或对象总数。我正在创建一个 slickEventData 对象并将该对象插入 eventsArray 中。所以我最终得到一个包含对象的数组。我想获取该数组内 slickEventData 对象的总数。当我使用长度时,我得到了错误的数字,我得到了 key 的总数?不是物体。

我的代码

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 中,并且在刷新之间不丢失它们。

最佳答案

[object object] 是在对象上调用 .toString() 时得到的结果。

您无法在开发工具中扩展字符串。我会从你进行一些无意的类型转换的 Angular 来看。

这个 sessionStorage.events = eventsArrayoldEvents = sessionStorage.events 对我来说看起来很可疑。

LocalStorage 和 SessionStorage 仅接受字符串的键值对。它不会为您字符串化您的对象,而是调用它们的 .toString() 。我认为问题在于您没有将字符串化数组存储到 SessionStorage 中,因此当您将其取出时,它不是一个数组而是一个字符串,您调用了字符串的 .length

我可以建议这些改变吗:

//Setting storage items
sessionStorage.setItem('events', JSON.stringify(eventsArray));

//reading storage items
JSON.parse(sessionStorage.getItem('events'));
<小时/>

编辑:虽然这可能无法直接回答问题,但(我相信)它仍然是有值(value)的信息,并且太大而无法在评论中解释。

关于javascript - 获取对象内数组中的总对象数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37026829/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com