我的数据的结构是这样的:删除对象的键在嵌套阵列高效方式
obj = {
_id: "sjkd9skj",
data: {
dektop: [
{
x: 2,
y: 3,
t: { key: 'aabbcc'}
},
...
],
mobile: [
{
x: 4,
y: 3,
t: { key: 'ffff'}
},
...
],
print: [
{
x: 7,
y: 5,
t: { key: 'ppp'}
},
...
]
}
}
在数据,我需要删除从所有数组元素的所有t
键的所有模式(desktop
,mobile
,print
)。
什么是最有效的方法来做到这一点?这些模式数组可能会变得很大。
我已经尝试过这样的:
obj.data.mobile.forEach((item)=>{
delete item.t;
});
obj.data.desktop.forEach((item)=>{
delete item.t;
});
obj.data.print.forEach((item)=>{
delete item.t;
});
这并不实际操作在这种情况下obj
,所以它没有工作。有更好的建议吗?
[我不能重现该问题](https://jsfiddle.net/cs87jd7f/)..? 't's被删除... – Teemu
谢谢@Kinduser我在我的应用程序中看到这个问题,因为我传递的状态是在REDX中操纵的。它必须与不变性问题相关。这个'obj'是从graphql调用返回的。似乎我将不得不深入深入。或复制我不想做的对象。 –
您应该了解关于不变性要求的信息。 –