배열의 배열을 정렬 할 수있는 방법을 알아내는 데 문제가 있습니다. 두 배열은 모두 직선이며, 나는 아주 간단하다고 확신하지만, 그것을 이해하지 못하는 것 같습니다.루비 정렬 배열 배열
여기에 배열의 :
라는 단어가 먼저, 가장 큰 수를 발생 횟수의 값 인 내부 배열의 정수 값을 정렬 할[["happy", 1], ["sad", 2], ["mad", 1], ["bad", 3], ["glad", 12]]
.
배열의 배열을 정렬 할 수있는 방법을 알아내는 데 문제가 있습니다. 두 배열은 모두 직선이며, 나는 아주 간단하다고 확신하지만, 그것을 이해하지 못하는 것 같습니다.루비 정렬 배열 배열
여기에 배열의 :
라는 단어가 먼저, 가장 큰 수를 발생 횟수의 값 인 내부 배열의 정수 값을 정렬 할[["happy", 1], ["sad", 2], ["mad", 1], ["bad", 3], ["glad", 12]]
.
중 하나를 시도하십시오 : 당신이 오름차순 또는 내림차순하려면
array = [["happy", 1], ["sad", 2], ["mad", 1], ["bad", 3], ["glad", 12]]
sorted = array.sort {|a,b| b[1] <=> a[1]}
따라 :
array = [["happy", 1], ["sad", 2], ["mad", 1], ["bad", 3], ["glad", 12]]
sorted = array.sort {|a,b| a[1] <=> b[1]}
또는가. 배열 # 정렬 방법을 사용하여
:
ary = [["happy", 1], ["sad", 2], ["mad", 1], ["bad", 3], ["glad", 12]]
ary.sort { |a, b| b[1] <=> a[1] }
이 당신이 원하는 것을해야한다.
a = [["happy", 1], ["sad", 2], ["mad", 1], ["bad", 3], ["glad", 12]]
a.sort {|x,y| y[1] <=> x[1]}
정렬은 블록과 함께 사용할 수 있습니다.
a = [["happy", 1], ["sad", 2], ["mad", 1], ["bad", 3], ["glad", 12]]
a.sort { |o1, o2| o1[1] <=> o2[1] }
#=> [["happy", 1], ["mad", 1], ["sad", 2], ["bad", 3], ["glad", 12]]
키순 정렬에는 항상 * sort * by를 사용해야합니다. 읽기 쉬울뿐만 아니라 더 효율적입니다. 이 경우'a.sort_by {| el | el [1]}',이 경우에는'a.sort_by (& : last)'와 동일합니다. –
어떻게 사용할 수 있습니까? a.sort_by {| el | el [1]} 만약 우리가 내림차순으로 주문하고 싶습니까? –
@ Vini.g.fer a.sort_by {| el | el [1] * -1} el [1]이 숫자 인 경우 – Abel