微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 ForEach 中更新 javascript 对象?

如何解决在 ForEach 中更新 javascript 对象?

我有一个像这样名为 objectX 的对象

{
    "test": [
      {
        "id": "de6b4d1c-6e04-46a1-908b-9ed5c78e1boc",},{
        "id": "de6b4d1c-6e04-46a1-908b-9ed5c78e1boc",}
    ],}

并且我想更新测试数组中所有对象的 ID。

为了做到这一点,我正在做

    objectX.test.forEach((obj) => {
      obj.id = newId
    })

但是对于我的 forEach,我有这个

Error: "[vuex] do not mutate vuex store state outside mutation handlers."

有人知道如何更新我的 ID 而不出现这样的错误吗?

解决方法

您不能在 forEach 内部更新,因为您正在更新对象的副本而不是对象本身。 您可以改为 map 在您的数组上并将更新后的数组返回到另一个变量:

const objectX = {
  test: [{ name: 'a',id: 4 },{ name: 'b',id: 2 } ],};
const newId = 1;
objectX.test = objectX.test.map((obj) => {
  return {
     ...obj,id: newId,}
 });
 console.log(objectX.test);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。