如何从 javascript 中的对象内部解构数组?

How to destructure an array from inside an object in javascript?

我有一个这样的对象:

obj = {'id': 1, a: [1, 2, 3]}

我想解构并从 obj

中获取数组 a
arr = {...obj.a}

我得到:

{0: 1, 1: 2, 2: 3}

这不是数组

如何获取数组本身?

差不多 - 正好相反:)

let {a: arr} = {'id': 1, a: [1, 2, 3]}

您可以通过将数组分配给具有剩余语法的数组来解构数组。

var obj = { id: 1, a: [1, 2, 3] },
    [...arr] = obj.a;

console.log(arr);

你是 spreading 里面的一个数组 {}。这将创建一个以数组索引作为键的对象。这就是为什么你得到 {0: 1, 1: 2, 2: 3}

const a = [ 1, 2 ]

console.log({ ...a })

如果你想把一个属性变成一个变量,这是correct syntax:

const { propertyName } = yourObject
// if you want to have a variable name which is different than the propertyName
const { propertyName: someOtherVariable } = yourObject

这是工作片段:

const obj = {'id': 1, a: [1, 2, 3] }

const { a: arr } = obj; // this is same as: const arr = obj.a

console.log(arr)

使用方括号而不是大括号将其 spread 放入新数组中:

const obj = {'id': 1, a: [1, 2, 3]}    
const arr = [...obj.a]
console.log(arr)