添加/删除对象属性并删除null
问题描述:
我想记住自定义插件中的开放式手风琴。第一手风琴是默认打开的,因此:添加/删除对象属性并删除null
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是开放
答
好了,所以我修改我的插件,只得到有效字符串的数字,但我也修改了对象因为它被打破:
if (tab in active && active[tab] !== null) {
delete active[tab];
} else {
active[tab] = tab;
}
我得到[空,1,空],所以现在我写满空,只是与值[0,1,NULL]只有0和1被读更换由插件。
SO这么快就回答我自己的问题!
对每个手风琴使用带有一个条目的数组并不容易,它们的值设置为true/false? – zeroflagL 2013-05-04 07:05:55
有不同数量的手风琴。无论如何,我修补我的插件,并检查为空,所以我可以替换值。我现在回答我自己的问题*叹气!* – stabbie 2013-05-04 07:07:56
数组的大小也是可变的;) – zeroflagL 2013-05-04 07:09:18