我有一个这样的用户对象
user: {
name: "james",
contact: "3245234545",
email: "james@gmail.com"
}
我想这样显示
james, 3245234545, james@gmail.com
如果它是一个数组,我可以做join(','),但不幸的是它是一个对象。我目前的做法是这样的
{this.user &&
<div>
{this.user.name} ,{this.user.contact}, {this.user.email}
</div>
}
这会行得通,但并不完美,如果用户未填写联系人该怎么办?那么多余的
,
仍然存在。如果电子邮件是可选的,那么最后还会有一个额外的,
。 最佳答案
您可以使用Object.keys
:
{this.user &&
<div>
{Object.keys(this.user).map(key => this.user[key]).join(', ')}
</div>
}
也有Object.entries,但它没有很好的支持,因此您必须为此使用polyfill。
还要注意,对象键的顺序可能与您定义它们的顺序不完全相同,尽管大多数浏览器会保留该顺序,但您可能想使用Map代替。