问题描述
如何使用扩展运算符访问对象数组中的元素?
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 在评论中所说
传播根本不像映射那样工作。所以...不,你不能做 它像映射一样工作