繁体   English   中英

Ruby-按属性降序对对象数组进行排序

[英]Ruby - sort array of objects by attribute in descending order

我有这个对象的Json数组

"students": [{
    "id": 1,
    "first_name": "John",
    "last_name": "Doe",
    "age": "14",
  }, {
    "id": 2,
    "first_name": "Victoria",
    "last_name": "Secret",
    "age": "9",
  }, {
    "id": 3,
    "first_name": "Jim",
    "last_name": "Morrison",
    "age": "16",
  }, {
    "id": 4,
    "first_name": "Jack",
    "last_name": "Daniels",
    "age": "7",
  },
  }]

我想在我的index.html.erb DESC顺序按年龄显示它们。 我到一半了,我设法对它们进行了排序,但是排序不正确。 这是我的循环

<% @classroom['students'].sort_by { |st| st['age'] }.each do |student| %>

这是我想要的结果:

16,  Jim,     Morrison
14,  John,    Doe
9,  Victoria, Secret
7,  Jack,     Daniels

这是我得到的:

14,  John,    Doe
16,  Jim,     Morrison
7,  Jack,     Daniels
9,  Victoria, Secret

你错过了年龄的数字

@classroom['students'].sort_by { |st| -st['age'].to_i }

我添加了-因为您希望它们按降序排列。 除此以外

@classroom['students'].sort_by { |st| st['age'].to_i }.reverse

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM