Javascript 在localStorage中通过密钥获取ID

Javascript 在localStorage中通过密钥获取ID,javascript,jquery,local-storage,Javascript,Jquery,Local Storage,在JS localStorage中,我可以使用 localStorage.getItem(key); 获取key变量中与键对应的项的值 如何使用键获取条目的ID(而不是值)? 编辑:对不起,我一定把人搞糊涂了。我所说的“键”是数字键,它是0、1、2、3等等,取决于保存了多少项。然后我想从数字键中找出它存储为的ID,例如下面示例中的foo localStorage.setItem('foo','bar')设置项目时,应将其ID作为值,而不是调用getItem(键)时,应将其ID作为返回值。例如

在JS localStorage中,我可以使用

localStorage.getItem(key);
获取
key
变量中与键对应的项的值

如何使用键获取条目的ID(而不是值)?


编辑:对不起,我一定把人搞糊涂了。我所说的“键”是数字键,它是0、1、2、3等等,取决于保存了多少项。然后我想从数字键中找出它存储为的ID,例如下面示例中的foo


localStorage.setItem('foo','bar')

设置项目时,应将其ID作为值,而不是调用getItem(键)时,应将其ID作为返回值。例如:

localStorage.setItem('foo', 'bar');
localStorage.getItem('foo');  // it should return the bar

请看以下示例,它可能会有所帮助:

LocalStorage是作为键值对实现的(例如,请参见:)-因此,您没有像数据库表中唯一的自动递增id那样的id

但是,您可以使用索引访问元素—要获取localStorage中某个键的索引,我唯一能找到的方法是循环遍历每个键,直到找到要搜索的键,如下所示:

var findIndexOfKey = function(searchKey) {
    for (var i = 0; i < localStorage.length; i++){
        var key = localStorage.key(i);
        if(key === searchKey)
            return i;
    }
    return -1;
}
要检索该值,可以执行以下操作:

localStorage.getItem(localStorage.key(myIndex));
。。。或者这个(相当于
localStorage.getItem(“myKey”)

答案是:

localStorage.key(key);

对不起,我意识到我混淆了什么是真正的键,我称之为ID,它是数字ID,我称之为键…

我认为这是不可能的。你就不能把
localStorage.setItem(你的键,值)
?我是说

localStorage.setItem(0,value)  
localStorage.setItem(1,value)

例如,这在循环中可能很有用。

对不起,这没有帮助。在您的示例中,
foo
是ID,
bar
是值。键应该是0、1、2、3等等,这取决于保存了多少值。我想要的是在给定数字键时返回ID(
foo
)。
localStorage.key(n)
应该返回第n个键,但我不认为有其他方法。您可以将
.key()
.length
属性一起使用,自己循环遍历每个项目。还要注意,添加或删除密钥可能会更改现有密钥的顺序。谢谢。在看到你的评论之前我才意识到,所以我已经回答了这个问题。我把东西的名字弄糊涂了…他是对的,他们没有直接的方法来获取你要找的具体ID你必须四处走走才能解决你的问题我在谷歌上搜索,但我找不到直接的方法我很抱歉,你为什么要这样做?从中可以看出,添加和删除键可能会改变现有键的顺序,因此您不能指望数字索引实际上意味着任何有用的东西……我想用DB条目填充
菜单。每当程序更改数据库中的某些内容时,
菜单将被擦除并重新填充。啊,好的。因此,使用
localStorage.getItem(localStorage.key(i))
(其中
i
显然是从
0
localStorage.length
的循环计数器)的
for
循环应该可以完成这项工作……谢谢。类似的东西就是我最后使用的。谢谢-很高兴我能帮上忙:)我喜欢你的
findIndexOfKey()
,但是关于你答案的最后一行:这和
localStorage.getItem(“myKey”)不一样吗
?@nnnnnn您完全正确-这可能是一个有点太简单的示例-我编辑了我的示例,并包含了一些不同的用例(并在示例中添加了一个缺少的
)-谢谢您的评论:)
localStorage.key(key);
localStorage.setItem(0,value)  
localStorage.setItem(1,value)