Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从LocalStorage编辑某个对象的属性,然后将其放回Vanilla Javascript?_Javascript_Local Storage - Fatal编程技术网

如何从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。