添加/删除对象属性并删除null

时间:2013-05-04 06:55:15

标签: javascript jquery

我想在自定义插件中记住开放式手风琴。第一支手风琴默认开启,所以:

var active = [0];

我点击手风琴然后从localStorage读取以获取值。在我的点击事件中:

var active = JSON.parse(localStorage.getItem(outerName)),
    tab = $(this).find('h3').index(ui.tab[0]);

if (tab in active) {
    delete active[tab];
} else {
    active[tab] = tab;
}
for (var i = 0; i < this.length; i++) {
    if (active[i] == null) {
        active.splice(i, 1);
        i--;
    }
}
localStorage.setItem(outerName, JSON.stringify(active));

这是有效的,除非我删除第一个手风琴然后点击第二个手风琴,我将获得重复的值[1,1]。我已经每次都删除了空值,所以这是原因,但我不知道如何正确获取值,这样如果我切换手风琴它将从对象中删除。

[0,3] =手风琴1和4已开启

[0,1] =手风琴1和2已开启

1 个答案:

答案 0 :(得分:0)

好的,所以我修补了我的插件,只是从活动字符串中获取数字,但我也修改了我的对象,因为它被破坏了:

if (tab in active && active[tab] !== null) {
    delete active[tab];
} else {
    active[tab] = tab;
}

我得到[null,1,null],所以现在我覆盖了null,只需用值[0,1,null]替换它,插件只读取0和1。

如此迅速地回答我自己的问题!

相关问题