Преобразование строк в числовые значения внутри подмассивов - PullRequest
0 голосов
/ 03 октября 2018

Моя цель - преобразовать буквы в словах в массиве в соответствующие им числовые значения, чтобы:

["I", "like", "elephants"]

превращалось в

[[18], [21, 18, 20, 14], [14, 21, 14, 25, 17, 10, 23, 29, 28]]

Как мне достичь своей цели?

Это мой текущий код:

words = ["I", "like", "elephants"]
seperate_words = []
converted_words = []

words.each do |word|
  seperate_words.push(word.split(//))
end
puts seperate_words.to_s

seperate_words.each do |word|
  word.each do |letter|
    converted_words.push(letter.to_i 36)
  end
end
puts converted_words.to_s

Я не могу отделить слова как подмассивы;Я получаю:

[18, 21, 18, 20, 14, 14, 21, 14, 25, 17, 10, 23, 29, 28]

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

По сути, вам нужно преобразование (карта).Сначала я разбил каждое слово на массив символов.затем каждая буква каждого массива символов становится целым числом.

words = ["I", "like", "elephants"]
words.map(&:chars).map { |letters| letters.map { |letter| letter.to_i 36 } }
0 голосов
/ 03 октября 2018

Вам нужно ввести промежуточный массив, где вы можете хранить результаты операции в одном слове:

separate_words.each do |word|
  converted_word = []
  word.each do |letter|
    converted_word.push(letter.to_i(36))
  end
  converted_words.push(converted_word)
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...