gpt4 book ai didi

javascript - 尝试对对象数组进行排序但 splice 不是函数?

转载 作者:行者123 更新时间:2023-12-02 14:39:47 24 4
gpt4 key购买 nike

全局情况是我正在尝试从对象数组中删除重复项。具有相同 advertId 和 LeadboxId 的对象被视为重复,但出于测试目的,我仅检查 advertIds

我从 sessionStorage 获取此数组并删除重复项。

var testSort = function () {
var events = [];
events = sessionStorage.events;
console.log("events unsorted");
console.log(events);
for (var i = 0; i < events.length; i++) {
for (var x = i + 1; x < events.length; x++) {
if (events[x].advertId == events[i].advertId) {
events.splice(x, 1);
--x;
}
}
// add
}

控制台打印出事件数组,如下所示:

[{"module":"slick_module","eventType":"swipe","leadboxId":"1565","advertId":"5653","length":"length of event","time":1462783354789,"posted":"postedStatus"},{"module":"slick_module","eventType":"swipe","leadboxId":"1565","advertId":"56527","length":"length of event","time":1462783357590,"posted":"postedStatus"}]

这不是一个好的数组吗?当尝试拼接它时,我收到 events.splice 不是函数的错误。

感谢任何帮助。

最佳答案

您无法在 SessionStorage 中存储数组/对象。
Web 存储只能存储字符串。
sessionStorage['events'] 键中有一个字符串,通过 JSON.stringify() 处理方法。
要处理数组以进行进一步过滤 - 使用 JSON.parse() 方法解码该字符串,例如:

var arr = JSON.parse(sessionStorage['events']);
...

https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API

关于javascript - 尝试对对象数组进行排序但 splice 不是函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37111327/

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