Преобразование массива строк к массиву плаваний

Переключатель целевой загрузки не работал у меня на iPhone / iPad WebKit. В итоге я переключил шоу-класс вручную, когда нажал на выпадающий контейнер

  $scope.showDropdown = function(dropdownManuId) {
    var element = document.getElementById(dropdownManuId);
    if( element.classList.contains("show") ) {
      element.classList.remove("show");
    } else {
      element.classList.add("show");
      element.focus();
      element.scrollIntoView();
    }
  };
6
задан 29 May 2009 в 17:40
поделиться

2 ответа

line.scan возвращает массив, поэтому вы вставляете массив в массив. Проще всего было бы вызвать flatten в массиве перед преобразованием строк в числа с плавающей запятой.

ft = []
puts "File Name: #{ARGV[0]}"
File.open(ARGV[0], "r") do |file|
    file.each_line do |line|
            ft << line.scan(/\d+/)
    end
end

ft = ft.flatten.collect { |i| i.to_f }
12
ответ дан 8 December 2019 в 13:01
поделиться

Вы должны взглянуть на формат «ft» после чтения файла.

Каждая строка сохраняется в другом массиве, поэтому на самом деле «ft» выглядит примерно так:

[["1","2"],["3","4"]]

] Итак, вам нужно сделать что-то вроде этого:

ft = []
puts "File Name: #{ARGV[0]}"
File.open(ARGV[0], "r") do |file|
    file.each_line do |line|
            ft << line.scan(/\d+/)
    end
end

tmp = []

ft.each do |line|
    line.each do |number|
        tmp << number.to_f
    end
end

puts tmp

Это всего лишь предположение, поскольку я не знаю, как выглядит ваш формат файла.

Изменить:

Здесь в виде однострочного текста:

ft.flatten!.collect! { |i| i.to_f }
6
ответ дан 8 December 2019 в 13:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: