Ruby Sorting Array Alphabetically [closed] - ruby-on-rails

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 4 years ago.
Improve this question
I have the Array which contains the mix data.
Its like
["AB_1020", "AB_950", "AB_50", "1000", "570"]
The output should be
AB_50, AB_950, AB_1020, 570, 1000

["AB_1020", "AB_950", "AB_50", "1000", "570"].sort_by do |k|
i, w = k.split('_').rotate
[w.to_s, -i.to_i]
end.reverse
#⇒ ["AB_50", "AB_950", "AB_1020", "570", "1000"]

You can do something like this
p ["AB_1020", "AB_950", "AB_50", "1000", "570"].partition{|x| x.to_i.zero? }
.flat_map{|x| x.sort_by {|x|x[/d+/]}.reverse}
ouptut
#⇒ ["AB_50", "AB_950", "AB_1020", "570", "1000"]

Related

Generator with condition in F# [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 2 years ago.
Improve this question
if you know, how I can write generator with condition in F# - tell me please!) something like that:
let res = [for i in 1..5 if i % 2 = 0 then i]
printfn "%A" res
You were almost on the right track.
let res =
[
for i in 1..5 do
if i % 2 = 0 then
yield i
]
The feature you're looking for is list comprehensions.
This is similar to yield return in C#. The same comprehensions are available for seq and Array.

Select elements in array rails [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 5 years ago.
Improve this question
x = [1, 2, 3, 4]
x[1, x.size - 1]
#=> [2, 3, 4]
How do I rewrite this code to make it more elegant.
I would like something like
x[1, -1]
Array#[] accepts a Range instance, and the right boundary can be negative, specifying the amount of elements from the end:
x[1..-1]
Try this one instead.
x[1..-1]

Generate a random string with n digits number (except 0 at begin) in Ruby [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
Someone can teach me how to generate a random string with n digits number.
Ex: n=3, myString = "001" or "002" or ... "999" (except number 0 at begin)
p/s: I am using Ruby 1.8.7
n.times.map { (0..9).to_a.sample }.join
If it's for a password or something:
require 'securerandom'
random_number = SecureRandom.random_number(10**n)
formatted_number = "0#{random_number}"
Edit: If it doesn't need to be secure:
random_number = rand(10**n)
formatted_number = "0#{random_number}"

math.random function with step option? [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 8 years ago.
Improve this question
A custom function that will return a random number with a step option available like in the for loop.
Example:
for i=1,10,**2** do
print(i)
end
Do you mean this:
function randomWithStep(first, last, stepSize)
local maxSteps = math.floor((last-first)/step)
return first + stepSize * math.random(0, maxSteps)
end
This gives the same behavior as math.random(first, last) except that the values will be "stepSize" apart. Note that the highest random # may not be "last", depends if (last-first) is a multiple of stepSize.

How to sort array with user function in Ruby? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking for code must demonstrate a minimal understanding of the problem being solved. Include attempted solutions, why they didn't work, and the expected results. See also: Stack Overflow question checklist
Closed 8 years ago.
Improve this question
I have php code, where occur sort, like this:
j=0;
while(...){
...
$cancel_alarm_trusee[$j]['created'] = alarm['created'];
...
j++;
}
function Compare($a, $b) {
return $a['created'] < $b['created'];
}
usort($cancel_alarm_trusee, 'Compare');
How to do it in Ruby?
Ruby Has Enumerable#sort and Enumerable#sort_by also.Look those methods.
Example:
%w{apple pear fig}.sort_by { |word| word.length}
#=> ["fig", "pear", "apple"]
%w(rhea kea flea).sort
#=> ["flea", "kea", "rhea"]

Resources