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

时间:2019-05-16 17:37:57

标签: javascript arrays object-destructuring

我有一个这样的对象:

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

我想解构并从obj获得数组a

arr = {...obj.a}

我得到:

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

这不是数组

如何获取数组本身?

4 个答案:

答案 0 :(得分:4)

您是{}中的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)

答案 1 :(得分:1)

您可以通过使用rest语法将数组分配给数组来将其分解为数组。

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

console.log(arr);

答案 2 :(得分:0)

几乎-相反:)

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

答案 3 :(得分:0)

使用方括号代替大括号将spread插入新数组:

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