使用 jquery 将(键值)数据附加到本地存储中的现有数据
Posted
技术标签:
【中文标题】使用 jquery 将(键值)数据附加到本地存储中的现有数据【英文标题】:Append (key value) data to existing data in localstorage using jquery 【发布时间】:2020-11-24 04:44:29 【问题描述】:我正在尝试比较两个 id 并将一个属性附加到现有的本地存储数据中。 在 for 循环中。
这里是codepen 显示示例数据和逻辑。
我只是想检查一下
var allcategorydatawithlevel
的 id
和 var category_id
的 categorydata
&如果这两个匹配我想追加
allcategorydatawithlevel
到 categorydata
的 level 属性。
请查看包含我尝试过的数据示例和逻辑的 Codepen。
【问题讨论】:
您的对象(或带有对象的数组)似乎是从控制台复制和粘贴的,因此它们在语法上不正确。请修复您的代码并使其正常运行。 好的,他们有什么办法解决这个问题吗? 有。查看this thread 了解如何在 chrome 中从控制台复制对象。 谢谢你我更新了codepen 请检查codepen 【参考方案1】:希望对你有所帮助:
var categorydata = [
category_id: 2, name: "Default Category", position: 1 ,
category_id: 3, name: "Clothing", position: 14597 ,
category_id: 6, name: "Brands", position: 1 ,
category_id: 8, name: "What's New", position: 1011 ,
category_id: 12, name: "Dresses", position: 4456 ,
category_id: 128, name: "Current Mood", position: 189 ,
category_id: 138, name: "Mini", position: 13078 ,
category_id: 630, name: "Kandi - Rave Clothing", position: 264 ,
category_id: 1130, name: "Char Test Category", position: 99 ,
category_id: 2443, name: "Sets", position: 163 ,
category_id: 2657, name: "Club Exx Festival", position: 208
];
var allcategorydatawithlevel = [
id: 1, level: 1 ,
id: 2, level: 5
]
var category = [];
for (i = 0; i < allcategorydatawithlevel.length; i++)
for (x = 0; x < categorydata.length; x++)
if (allcategorydatawithlevel[i].id == categorydata[x].category_id)
category.push(allcategorydatawithlevel[i].level);
localStorage.setItem("category", JSON.stringify(category));
console.log(JSON.stringify(category));
您也可以使用以下代码:
allcategorydatawithlevel.forEach((item, index) =>
categorydata.forEach((key, val) =>
if (item.id === key.category_id)
category.push(item.level);
)
localStorage.setItem("category", JSON.stringify(category));
)
console.log(JSON.stringify(category));
【讨论】:
让我检查一下上面的答案。以上是关于使用 jquery 将(键值)数据附加到本地存储中的现有数据的主要内容,如果未能解决你的问题,请参考以下文章
如何 - 使用 JQuery 在二维数组和 HashTable 中存储键值对?