更新 ForEach 中的 javascript 对象?
Updating javascript object in a ForEach?
我有一个像这样的名为 objectX 的对象
{
"test": [
{
"id": "de6b4d1c-6e04-46a1-908b-9ed5c78e1boc",
},
{
"id": "de6b4d1c-6e04-46a1-908b-9ed5c78e1boc",
},
{
"id": "de6b4d1c-6e04-46a1-908b-9ed5c78e1boc",
},
{
"id": "de6b4d1c-6e04-46a1-908b-9ed5c78e1boc",
},
{
"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
遍历您的数组并将更新后的数组 return 传递给另一个变量:
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);
我有一个像这样的名为 objectX 的对象
{
"test": [
{
"id": "de6b4d1c-6e04-46a1-908b-9ed5c78e1boc",
},
{
"id": "de6b4d1c-6e04-46a1-908b-9ed5c78e1boc",
},
{
"id": "de6b4d1c-6e04-46a1-908b-9ed5c78e1boc",
},
{
"id": "de6b4d1c-6e04-46a1-908b-9ed5c78e1boc",
},
{
"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
遍历您的数组并将更新后的数组 return 传递给另一个变量:
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);