Javascript rest运算符忽略属性

Javascript rest运算符忽略属性,javascript,ecmascript-6,Javascript,Ecmascript 6,我试图使用rest操作符和重构来省略对象中的一个条目。根据文档,rest不应再包括密钥条目575。操作完成后,rest仍具有与state相同的键。我不确定我做错了什么。提前谢谢 book={ id:575, 标题:“向量计算” }; 状态={ 移除的书籍:{ 46: { id:46, 标题:“经济学” }, 575: { id:575, 标题:“向量计算” } } }; 常数{ [book.id]:数据,…剩余 }=国家; 控制台日志(rest)这些书籍是removedBooks属性的一部分,

我试图使用rest操作符和重构来省略对象中的一个条目。根据文档,rest不应再包括密钥条目575。操作完成后,rest仍具有与state相同的键。我不确定我做错了什么。提前谢谢

book={
id:575,
标题:“向量计算”
};
状态={
移除的书籍:{
46: {
id:46,
标题:“经济学”
},
575: {
id:575,
标题:“向量计算”
}
}
};
常数{
[book.id]:数据,…剩余
}=国家;

控制台日志(rest)这些书籍是
removedBooks
属性的一部分,不是
状态的直接子级。您还需要解构
removedBooks
属性

constbook={“id”:575,“title”:“Vector Calc”};
const state={“removedBooks”:{“46”:{“id”:46,“title”:“economics”},“575”:{“id”:575,“title”:“Vector Calc”}};
const{removedBooks:{[book.id]:data,…removedBooks}}=state;
const newState={…state,removedBooks};

console.log(newState)这些书籍是
removedBooks
属性的一部分,不是
状态的直接子级。您还需要解构
removedBooks
属性

constbook={“id”:575,“title”:“Vector Calc”};
const state={“removedBooks”:{“46”:{“id”:46,“title”:“economics”},“575”:{“id”:575,“title”:“Vector Calc”}};
const{removedBooks:{[book.id]:data,…removedBooks}}=state;
const newState={…state,removedBooks};

console.log(newState)
您的解构分配要求模式为
{575:data,…other…}
,但
状态实际上具有
{removedbook:{575:data,…other…}
。将
removedBooks
添加到您的解构任务中,它就可以正常工作了

book={
id:575,
标题:“向量计算”
};
状态={
移除的书籍:{
46: {
id:46,
标题:“经济学”
},
575: {
id:575,
标题:“向量计算”
}
}
};
const{removedbook:{
[book.id]:数据,…剩余
}}=状态;

控制台日志(rest)
您的解构分配要求模式为
{575:data,…other…}
,但
状态实际上具有
{removedbook:{575:data,…other…}
。将
removedBooks
添加到您的解构任务中,它就可以正常工作了

book={
id:575,
标题:“向量计算”
};
状态={
移除的书籍:{
46: {
id:46,
标题:“经济学”
},
575: {
id:575,
标题:“向量计算”
}
}
};
const{removedbook:{
[book.id]:数据,…剩余
}}=状态;

控制台日志(rest)我会按程序来做。这使得你的代码很难理解。你为什么不直接删除state.removedBooks[575]
在那些代码块中,你根本不修改rest,你只从it@Berto99是的,这会起作用,但这不是修改React中状态的推荐方法。抱歉,没有包含上下文。@Leon rest操作符就是这样工作的。您不需要修改它来读取数据的子集。看这里:我会按程序来做。这使得你的代码很难理解。你为什么不直接删除state.removedBooks[575]
在那些代码块中,你根本不修改rest,你只从it@Berto99是的,这会起作用,但这不是修改React中状态的推荐方法。抱歉,没有包含上下文。@Leon rest操作符就是这样工作的。您不需要修改它来读取数据的子集。看这里:谢谢你@Ori。这在我的chrome控制台中绝对有效。然而,在我的react组件中,我得到了错误的输出。我将提出另一个问题,重点是这个问题。如果你能看一下,那就太好了。谢谢你@Ori。这在我的chrome控制台中绝对有效。然而,在我的react组件中,我得到了错误的输出。我将提出另一个问题,重点是这个问题。如果你能看看,那就太好了。