我已经在网上和stackoverflow上找到了这个问题的答案。
如何从也嵌套在本地存储中的动态键中检索值。我尝试了许多例子,但似乎一无所获。我知道执行任务需要一个循环,但是需要哪种类型的循环。
如何从localstorage获取具有嵌套动态密钥SCI-4的'uniqid‘值,该值为:
simpleCart_items:{"SCI-4":{"quantity":4,"id":"SCI-4","price":8,"name":"12 fried chicken","flavours":"cola","code":"1001","cartid":"561","uniqid":"592dcd08b5fcc"}}这允许我查看本地存储。
var obj = localStorage;
Object.keys(obj).forEach(function(key){
var value = obj[key];
console.log(key + ':' + value);
});我如何迭代以获得任何值?
这个问题的不同之处在于,我寻求从具有动态值的嵌套键中获取值。如果密钥未知,如何拉取值?循环应该是什么样子的?
发布于 2017-05-31 05:01:28
认为这就是您要找的,:)
Object.keys(obj).forEach(function (key) {
Object.keys(obj[key]).forEach(function (val) {
//console.log(val);
if(val === "uniqid")
{
//logic here
console.log(obj[key][val]);
}
});});
发布于 2017-05-31 05:12:50
如果您只是将您的结构存储为单个键的单个值,那么在以后提取它非常容易。
// How do I get the 'uniqid' value which has the nested dynamic key SCI-4 from localstorage which reads:
// This is our simulated result from pulling from localStorage
var lsString = `{
"simpleCart_items": {
"SCI-4": {
"quantity":4,
"id":"SCI-4",
"price":8,
"name":"12 fried chicken",
"flavours":"cola",
"code":"1001",
"cartid":"561",
"uniqid":"592dcd08b5fcc"
}
}
}`;
// First, remember that localStorage stores strings, so we must parse the string
// back into an object:
var lsObj = JSON.parse(lsString);
var keyName = Object.keys(lsObj.simpleCart_items).toString();
// Now, we can go directly to the property we want:
console.log(lsObj.simpleCart_items[keyName].uniqid);
发布于 2017-05-31 14:39:07
睡个好觉之后。我能够取得进展。谢谢你们给我指了个正确的方向。有许多观点和方法来完成其中一些令人困惑的功能。
需要正确访问localStorage,如下所示。该问题主要通过以下方式解决:
var obj = JSON.parse(localStorage.simpleCart_items);
Object.keys(obj).forEach(function (key) {
Object.keys(obj[key]).forEach(function (val) {
//console.log(val);
if (val === "quantity")
{
//logic here
console.log(obj[key][val]);
}
});
});https://stackoverflow.com/questions/44271710
复制相似问题