如何从LocalStorage编辑某个对象的属性,然后将其放回Vanilla Javascript?
假设我有一个对象数组:如何从LocalStorage编辑某个对象的属性,然后将其放回Vanilla Javascript?,javascript,local-storage,Javascript,Local Storage,假设我有一个对象数组: const colors = [ { name: "red", label: "red", colorHex: "#FF0000", }, { name: "blue", label: "blue", colorHex: "#0000FF", }, { name: "y
const colors = [
{
name: "red",
label: "red",
colorHex: "#FF0000",
},
{
name: "blue",
label: "blue",
colorHex: "#0000FF",
},
{
name: "yellow",
label: "yellow",
colorHex: "#FFFF00",
},
{
name: "green",
label: "green",
colorHex: "green",
},
{
name: "purple",
label: "purple",
colorHex: "#800080",
},
{
name: "orange",
label: "orange",
colorHex: "#ffa500",
},
{
name: "bluegreen",
label: "blue green",
colorHex: "#0d98ba",
},
{
name: "blueviolet",
label: "blue violet",
colorHex: "#8a2be2",
},
{
name: "yellowgreen",
label: "yellow green",
colorHex: "#9acd32",
},
{
name: "redviolet",
label: "red violet",
colorHex: "#c71585",
},
{
name: "redorange",
label: "red orange",
colorHex: "#ff6600",
},
{
name: "yelloworange",
label: "yellow orange",
colorHex: "#ffae42",
},
];
我不想逐一查看这些对象,也不想通过索引的方式访问它们。相反,我只想从本地存储中获取具有属性名redorange
(通过使用for循环或其他什么?)的数组中的对象本身
之后,我想编辑/更改这个属性,比如说reddisharange
。然后将其放回本地存储。我不知道怎么做。var color=colors.find(v=>v.name==“redorange”)
color=color |{}//以防找不到
color.name=“红橙色”
当然,这是可能的,一点也不难
colors.forEach(color => {
color.name = color.name === "redorange" ? "reddishorange" : color.name
})
colors.find(({name})=>name==“redorange”).name=“reddisharange”
对于localStorage
,读取时使用JSON.parse()
,写入时使用JSON.stringify()
。我在你的问题顶部添加了另一个链接,你可以将|{}
与第一行内联,并将颜色设置为常量。更好的方法是使用??{}
正确,我甚至无法将所有3行对齐,只是不想混淆OPI。对不起@Jew,我忘了在这里包含本地存储。请提供帮助。香草本地存储只能存储字符串,您使用的是库吗?很抱歉@BülentAkgül我忘了在这里包含本地存储。请帮助。本地存储是指您的硬盘吗?是的,我的计算机中有硬盘。Javascript无法更改文件。它可以读取数据、操作数据,但可以保存新数据。所以你需要使用其他的东西,比如PHP。