【发布时间】:2020-11-16 20:04:12
【问题描述】:
我有这个代码:
let peopleInRoom = [];
for (let message of messages) {
for (let email of message.user.email) {
if (!peopleInRoom.includes(email)) {
peopleInRoom.push(email);
}
}
}
let peopleInRoomElement = peopleInRoom.map(person => (
<li>{person}</li>
))
基本上我正在尝试获取所有独特的电子邮件并显示它们。
是否有更短更高效的方式(可能是一些 ES6 特性)来编写相同的代码?看起来代码太多了。
我看了这个答案:How to get distinct values from an array of objects in JavaScript?
编辑:上面的代码没有做我想要的。
我的数据如下所示:
[
{
text: 'foo',
user: { email: 'foo@bar.com', password: 'foo' }
},
{
text: 'baz',
user: { email: 'baz@qux.com', password: 'baz' }
}
]
对象都是消息。我想从每条消息中获取所有唯一电子邮件的数组
【问题讨论】:
-
你试过一套吗?
-
您好,欢迎来到 SO!如果您想要单线,您找到的答案绝对是要走的路,只需稍作修改即可在您的情况下使用。如果它不起作用 - 你确定你了解它应该如何工作吗?如果不是,那么您当前的尝试可能会更好,只是您没有正确处理您的数据 -
message.user.email是一个字符串,而不是一个数组。
标签: javascript reactjs performance for-loop