【发布时间】:2016-11-02 10:41:53
【问题描述】:
我在本地存储中有一个对象数组,如下所示:
ios = [{
"id" : 1,
"type" : "in",
"cat" : "Diversi",
"qty" : 50,
"date" : "2016-11-02T09:51:48.872Z",
"descr" : ""
}, {
"id" : 1,
"type" : "in",
"cat" : "Lavoro",
"qty" : 50,
"date" : "2016-11-02T10:08:11.362Z",
"descr" : ""
}];
我想用这个函数删除其中一个对象:
function remove(io) {
var ios = localStorage.getItem('ios') ? JSON.parse(localStorage.getItem('ios')) : [];
var index;
for (var i = 0; i < ios.length; i++) {
if (ios[i] === io) {
index=i;
break;
}
}
ios.splice(index, 1);
localStorage.setItem('ios', JSON.stringify(ios));
}
但是当我调用该函数并将参数传递给删除时,它不会删除我想要的那个,而是删除本地存储中的第一个。 谁能帮帮我?
【问题讨论】:
-
尝试用
if (JSON.stringify(ios[i]) === JSON.stringify(io)) {替换if (ios[i] === io) { -
传递给
remove的是什么?它是一个对象吗? -
@OliverRadini 是的,我传递了一个对象
-
不要拼接,过滤。
标签: javascript arrays local-storage