0

我有一个这样的对象:

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

我想解构并从中获取数组 aobj

arr = {...obj.a}

我得到:

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

这不是一个数组

如何获取数组本身?

4

4 回答 4

4

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

const a = [ 1, 2 ]

console.log({ ...a })

如果要将属性放入变量中,这是正确的语法

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)

于 2019-05-16T17:42:06.727 回答
0

几乎 - 这是相反的方式:)

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

于 2019-05-16T17:40:22.903 回答
0

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

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

console.log(arr);

于 2019-05-16T17:41:58.380 回答
0

使用方括号而不是花括号将其展开到新数组中:

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

于 2019-05-16T17:42:11.710 回答