如何从我的 Reducer 对象中删除一个项目?
How to delete an item from my Reducer Object?
我的减速器中有一个这样的对象:
clientData : {
1080 : [{ID : 1111,name : 'John'},{ID : 2222,name : 'Stan'},],
1090 : [{ID : 3333,name : 'Adam'},{ID : 4444,name : 'Alan'},]
}
而且我希望能够删除一个项目(例如 Stan 的 ID 为 2222)
问题是我没有 属性 (1080) 的密钥,而且我不知道如何实现它。
我试过 Object.values(object1) 但它将我的对象转换为数组,我失去了所有的架构。
请问你有什么想法吗?
从现有对象中删除可能不好,您可以使用 Object.entries 和过滤器来删除 id。
如果您想将现有通行证 data
更改为 reducer
const data = {
1080: [
{ ID: 1111, name: "John" },
{ ID: 2222, name: "Stan" },
],
1090: [
{ ID: 3333, name: "Adam" },
{ ID: 4444, name: "Alan" },
],
};
const remove = (id, data) => {
const entries = Object.entries(data);
return entries.reduce((acc, [key, value]) => {
const newValue = value.filter((item) => item.ID !== id);
acc[key] = newValue;
return acc;
// return { ...acc, [key]: newValue };
}, {}); // for updating existing data here
};
console.log(remove(2222, data))
我的减速器中有一个这样的对象:
clientData : {
1080 : [{ID : 1111,name : 'John'},{ID : 2222,name : 'Stan'},],
1090 : [{ID : 3333,name : 'Adam'},{ID : 4444,name : 'Alan'},]
}
而且我希望能够删除一个项目(例如 Stan 的 ID 为 2222) 问题是我没有 属性 (1080) 的密钥,而且我不知道如何实现它。 我试过 Object.values(object1) 但它将我的对象转换为数组,我失去了所有的架构。 请问你有什么想法吗?
从现有对象中删除可能不好,您可以使用 Object.entries 和过滤器来删除 id。
如果您想将现有通行证 data
更改为 reducer
const data = {
1080: [
{ ID: 1111, name: "John" },
{ ID: 2222, name: "Stan" },
],
1090: [
{ ID: 3333, name: "Adam" },
{ ID: 4444, name: "Alan" },
],
};
const remove = (id, data) => {
const entries = Object.entries(data);
return entries.reduce((acc, [key, value]) => {
const newValue = value.filter((item) => item.ID !== id);
acc[key] = newValue;
return acc;
// return { ...acc, [key]: newValue };
}, {}); // for updating existing data here
};
console.log(remove(2222, data))