全部,这是我在这里的第一个问题,所以我希望我的措词正确无误,并提供足够的信息以供使用。
我在本地存储中有一个名为faveGifs的密钥,该密钥中存储了多个项目,每个项目都是一个对象。我希望能够分别删除这些对象。到目前为止,我可以删除第一个对象,即位置0处的对象。我希望能够删除它们所在的索引处的对象,例如位置2。我知道我必须获取每个对象的索引才能实现此目的,但是,当我通过indexOf()运行键时,唯一获得的索引是-1。
这是我的本地存储密钥的外观:
faveGifs[
{id: 'jijijoj',rating: 'g'},
{id: 'iojiojoi',rating: 'r'},
{id: 'eawfe',rating: 'pg'},
{id: 'ewfewfwe',rating: 'g'},
{id: 'ewfewfew',rating: 'r'}
];
这是我的代码:
$(document).on("click", "#remove", function () {
let faveGifs = JSON.parse(localStorage.getItem("faveGifs"));
let faveGif = faveGifs.map(faveGif => faveGif.id);
//Neither of the following has worked for me:
//let index = faveGif.indexOf(faveGif);
//let index = faveGif.indexOf(faveGifs);
console.log(index);
// faveGifs.splice(index, 1);
// localStorage.setItem("faveGifs", JSON.stringify(faveGifs));
// populateFaves();
});
我尝试使用类似问题的解决方案,但没有一个对我有用。我尝试过的是:
Remove a specific item from localstorage with js
Remove json object in localstorage using js
How do I remove an object from an array with JavaScript?
还有其他几个人,但是就像我说的那样,没有一个人为我工作。
非常感谢任何帮助我的人。
答案 0 :(得分:1)
问题在于faveGif
仍然是一个数组-看起来像这样:
faveGif = ['jijijoj', 'iojiojoi', 'eawfe', 'ewfewfwe', 'ewfewfew'];
因此,如果您要查找某个ID的索引(例如ewfewfew
):
let index = faveGif.findIndex(id => id == "ewfewfew");
这将与faveGifs
中的索引相同,因此它将为您提供所需的结果。
演示:
let faveGifs = [{
id: 'jijijoj',
rating: 'g'
}, {
id: 'iojiojoi',
rating: 'r'
}, {
id: 'eawfe',
rating: 'pg'
}, {
id: 'ewfewfwe',
rating: 'g'
}, {
id: 'ewfewfew',
rating: 'r'
}];
let faveGif = faveGifs.map(faveGif => faveGif.id);
let index = faveGif.findIndex(id => id == "ewfewfew");
console.log(index); //Should return 4
答案 1 :(得分:0)
要获取数组中元素的索引,可以使用Array.prototype.findIndex()
代码:
const data = [
{id: 'jijijoj',rating: 'g'},
{id: 'iojiojoi',rating: 'r'},
{id: 'eawfe',rating: 'pg'},
{id: 'ewfewfwe',rating: 'g'},
{id: 'ewfewfew',rating: 'r'}
];
// get index of element with id `iojiojoi`
const index = data.findIndex(item => item.id === 'iojiojoi');
console.log(index);
答案 2 :(得分:0)
我相信这是您正在尝试解析一个字符串,就好像它是JSON。
查看此信息:Storing Objects in HTML5 localStorage。 OP正在尝试解决类似的问题。