使用下划线对数组中的嵌套对象进行排序

6
考虑以下扩展对象:

enter image description here

现在这些对象都存储在一个数组中,很容易按照名称、电子邮件、创建时间或任何其他方式进行排序。但是如果我想按用户资料投资者类型进行排序怎么办?在图像中,您可以使用data.profile.data.investor_type来获取投资者类型。
我如何使用underscore按对象中嵌套属性对数组进行排序?

不,这不是一个重复的内容。 - TheWebs
1个回答

15
你可以使用_.sortBy来处理你展示的确切代码。
_.sortBy(data, function(obj) { return obj.profile.data.investor_type; });
如果您的环境支持ECMA Script 2015的Fat-arrow函数,则可以编写与以下代码相同的内容: (箭头函数)
_.sortBy(data, (obj) => obj.profile.data.investor_type);

我有点迷惑,这个代码怎么按照投资者类型对对象数组进行排序呢? - TheWebs
对于数组中的每个元素,都会使用相应的“投资者类型”进行比较。因此,对象数组将根据“投资者类型”进行排序。 - thefourtheye
你一定要阅读_.sortBy函数,它可以按照我指定的值来对数组进行排序,例如在你的情况下是"profile.data.investor_type"。这里有一个示例链接:https://jsfiddle.net/zobidafly/g45pereL/ - zobidafly
@zobidafly,您的意思是这个解决方案行不通吗? - thefourtheye
@thefourtheye:不,它可以工作,我只是添加了一个注释和一个链接来检查它是否正常运行... - zobidafly

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接