在分解仅以数字为键的对象并使用散布运算符收集所有其他对象时,我有一个奇怪的行为。这个问题发生在我的ReactJS应用中,babel设置为es2017,插件为“ transform-object-rest-spread”。我正在使用normalizr展平对象,这就是为什么要使用数字键获取对象的原因。
const tmpContainer = {
24: { v: 1 }, 36: { v: 5 }, 42: { v: 3 }
}
const action = { id: 24 }
const { [action.id]:elem, ...rest } = tmpContainer
console.log(elem)
console.log(rest)
elem的输出:24 : {v:1}
休息的输出是: 24 : {v:1} 36 : {v:5} 42 : {v:3}
具有键24的元素可以正确获取,但不会从跨页中删除。在https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Operators/Spread_syntax尝试相同的代码可以正常工作。
将动作更改为
const action = { id: "24" }
传播的结果是正确的。
我真的很困惑为什么会发生这种情况或是什么导致了问题?