首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用第二个数组中的值对对象数组进行排序

如何使用第二个数组中的值对对象数组进行排序
EN

Stack Overflow用户
提问于 2014-10-04 02:23:13
回答 1查看 54关注 0票数 1

我有一个对象数组,需要根据属性的值对它们进行排序。排序的顺序在第二个数组中给出。

代码语言:javascript
复制
a = [ object1, object2, object3, object4]

object1.job = 'ER'
object2.job = 'AD'
object3.job = 'WE'
object4.job = 'ER'

b = ['ER', 'ER', 'WE', 'AD']

我需要对数组a进行排序,以便它返回[object1/object4, object3, object2]。如何使用数组b作为排序的键?

EN

回答 1

Stack Overflow用户

发布于 2014-10-04 02:26:29

这应该是可行的:

代码语言:javascript
复制
sorted_a = a.sort_by { |obj| b.index obj.job }

注意,b不需要有多个ER副本;它只需要指出ERWEAD之前。

代码语言:javascript
复制
b = ['ER', 'WE', 'AD']

index函数返回其参数在其调用对象中的位置:

代码语言:javascript
复制
b.index 'ER'  #=> 0
b.index 'AD'  #=> 2

sort_by方法在数组的每个元素上运行所提供的块,并使用结果作为排序依据。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26184561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档