Javascript 如何使用键名为数字的键来分解对象?

Javascript 如何使用键名为数字的键来分解对象?,javascript,object,ecmascript-6,Javascript,Object,Ecmascript 6,我有需要在组件中分解的道具。由于它来自API,所以实际上它是一个对象,我想从中获取0到39的对象。但是,当我尝试以这种方式分解它们时: const { 0, ...39: weatherData } = this.props; VSCode由于逗号而给我一个意外标记错误。如何在不枚举每个对象的情况下分解道具?您可以将数组作为对象的目标,它只获取数字索引并将其切片到所需的长度 const数组=对象 .assign([],{abc:1,0:100,1:101,39:139,40:140}) .

我有需要在组件中分解的道具。由于它来自API,所以实际上它是一个对象,我想从中获取0到39的对象。但是,当我尝试以这种方式分解它们时:

 const { 0, ...39: weatherData } = this.props;

VSCode由于逗号而给我一个意外标记错误。如何在不枚举每个对象的情况下分解道具?

您可以将数组作为对象的目标,它只获取数字索引并将其切片到所需的长度

const数组=对象
.assign([],{abc:1,0:100,1:101,39:139,40:140})
.切片(0,40);
console.log(Array.isArray(Array));
console.log(数组)

.as控制台包装{max height:100%!important;top:0;}
在javascript中,即使您使用
数字
作为键创建对象,键始终是字符串,以下面的示例为例:

const obj={
[1]: 1,
另一件事:2
};

console.log(Object.keys(obj))
对象键始终是字符串。即使这些字符串包含数字字符,它们仍然是字符串。@ScottMarcus,好的,那么如果我得到一个关于逗号的错误,如何对它们进行解构呢?您是否正在尝试获取一系列键的所有值?我不知道你希望
在这里做什么。这个对象实际上是数组吗?事实上应该是这样的。即使没有数字属性,解构也不是这样的。如果您想创建一个只包含属性子集的新对象,可以执行以下操作。但是输出不是数组,而是对象。切片仅适用于数组。请参阅数组检查。@llievredemars它无论如何都应该是一个数组。整数命名属性不需要计算键。@Bergi否,但这样更容易识别它们。