在对象数组上使用扩展运算符来访问元素

问题描述

如何使用扩展运算符访问对象数组中的元素?

const array = [{ obj: 1},{ obj: 2}]

console.log([...array].obj)
// Output undefined 

console.log([...array.obj])
// Output Uncaught TypeError

我看过这篇帖子 Use spread operator on objects array?,它非常相似,但他们没有尝试访问元素。

那么是否可以在对象数组上使用扩展运算符来访问元素?如果是这样怎么办?

解决方法

您可能正在寻找map

您需要的是array.map(element => element.obj)

您的尝试有什么问题:

  • console.log([...array].obj):您将 array 扩展到一个新数组中,然后记录新数组的 obj 属性,即 {{1 }},如预期

  • undefined:您试图传播 console.log([...array.obj])obj 属性,它也是 array,这意味着您试图传播 {{ 1}},这会给你一个错误

,

简短的回答,

我们不能在对象数组上使用扩展运算符来访问元素。

正如 @VLAZ 在评论中所说

传播根本不像映射那样工作。所以...不,你不能做 它像映射一样工作

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...