【发布时间】:2014-08-05 20:12:28
【问题描述】:
我有一个数组,其中包含以下格式的许多对象:
var data = [
{
vs: "23434",
ip: "129.23.321.5"
},
{
vs: "23454",
ip: "129.23.321.6"
},
{
vs: "23434",
ip: "129.23.321.8"
}
];
现在我想对它们进行排序,其中有一个数组,其中包含以下格式的对象:
var dataFinal = [
{
vs: "23434",
ip: ["129.23.321.5", "129.23.321.8"]
}
{
vs: "98647",
ip: ["129.23.321.6"]
}
];
所以基本上,数据变量中将有多个对象,其中可能有多个具有相同 vs 的 ip。我想以数组将有多个对象的方式对它们进行排序,每个对象一个对象,但是ip 将是另一个数组,其中包含该 vs 的所有 ip。
在 javascript 中执行此操作的最佳方法是什么?
【问题讨论】:
-
您的意思是“可能有多个 ip 具有相同的 vs”吗?
-
@merlin 是的,感谢您的关注。我已经更新了帖子。
-
你试过什么?看来
reduce和sort的某种组合应该可以工作。 -
@pdoherty926 到目前为止,我已经尝试创建一个临时对象并循环遍历数据变量以查找具有相同 vs 的其他对象并获取所有 ip 并将其添加到临时对象中。一旦循环完成,它会将对象推送到 dataFinal 数组,然后对下一个执行相同的操作。这确实有效,但我觉得这不是正确的方法。谢谢你的建议,我会看看reduce和sort
-
尝试使用 underscore.js 之类的
_.groupBy(data, 'vs')
标签: javascript arrays node.js sorting object