В JavaScript, даже если вы создали свой объект, используя number
в качестве ключа, ключи всегда являются строками, возьмите следующий пример:
const obj = {
[1]: 1,
anotherThing: 2
};
console.log(Object.keys(obj))
Однако, поскольку '1'
или 1
являются литералами, использование их в назначении деструктурирования невозможно, чтобы использовать числовые ключи, которые необходимо преобразоватьваш объект для iterable
или сопоставления свойств вручную,
Самый простой способ преобразовать ваш объект в итеративный - это использовать Object.assign
с массивом, поскольку массив также является объектом, вы можете сделать следующее:
const arr = Object.assign([], obj);
И чтобы выполнить свою цель, что-то вроде:
const obj = {
[0]: 0,
[1]: 1,
wheaterData: 'wheaterData',
anotherNonNumericProp: '1'
};
const arrOfNumericProps = Object.assign([], obj);
const [prop0, prop1] = arrOfNumericProps;
const {wheaterData,
...rest
} = arrOfNumericProps;
console.log(prop0);
console.log(prop1);
console.log(wheaterData);
console.log(rest);