【发布时间】:2018-11-18 17:14:57
【问题描述】:
我有一个组对象:
{groupid1: "metadata",
groupid2: "metadata"}
还有一组用户:
[
{
name: "something",
groups: ["groupid1", "groupid2"]
...},
{
name: "something else ",
groups: ["groupid1"]
...},
{
name: "something else again",
groups: ["groupid2"]
...},
]
我想遍历组 id 并提取与该组 id 匹配的用户列表,所以我最终记录了两个用户列表,每个组一个:
for (group in groups) {
var userArray = _.pluck(users, function(user) {
return user.groups.indexOf(group) > -1;
})
console.log(userArray);
}
问题是这返回给我一个未定义的数组,而不是一个用户对象的数组。即使只是返回用户名也很好。
感谢您提供的任何帮助! 对于可伸缩性,下划线是解决此问题的首选方法。
【问题讨论】:
-
嗨 Mike,下划线是解决这个问题的首选方法,而不是纯 JS 方法。
-
原始 JavaScript 几乎总是比库更“可扩展”。
-
我正在阅读服务器端节点和下划线,发现在处理更大的数组时(在我的情况下,它将是 ~1000 个用户和 ~20 个组)下划线具有更好的性能。我会再看看这个并与我的同事讨论,谢谢。
-
仅供参考,Underscore 是用 JavaScript 编写的,所以它不可能有比 JavaScript 更好的性能,因为它是 JavaScript :)。没什么大不了的,你有一个使用图书馆的答案,只是以为我已经完成了。