我删除了主脚本中存储在simple-storage数组中的元素。这会在simple-storage数组中创建null元素。所以我运行一个脚本将一个新数组返回到主addon脚本(它不包含null元素)和我将它分配给简单存储阵列。但主脚本只获得一个元素而不是整个数组。如何获得整个阵列? 下面是主要的插件代码部分:
text_entry.port.on("del", function (todel) {
console.log(todel);
site_l=ss.storage.sites.length;
for(var i=0;i<site_l;i++)
{
if(ss.storage.sites[i]==todel)
{
delete ss.storage.sites[i];
}
}
text_entry.port.emit("c",ss.storage.sites);
text_entry.port.on("cd",function(arr){
ss.storage.sites=[];
ss.storage.sites=arr;
});
});
脚本,它返回不包含空元素的新数组:
self.port.on("c",function(arr)
{
var a=arr;
var l=a.length;
function isEmpty(element) {
if(element!=null)
return true;
}
a=a.filter(isEmpty);
self.port.emit("cd",a);
});
答案 0 :(得分:1)
替换
for(var i=0;i<site_l;i++) {
if(ss.storage.sites[i]==todel) {
delete ss.storage.sites[i];
}
}
使用ss.storage.sites.splice(ss.storage.sites.indexOf(todel), 1)