Автоматический счетчик в Ruby для каждого?

Boolean bool = my_driver.findElements(By.id("my element id")).size()>0;

это тебе поможет.

131
задан the Tin Man 13 April 2017 в 22:40
поделиться

7 ответов

Как люди сказали, можно использовать

each_with_index

, но если Вы хотите индексы с итератором, отличающимся от "каждого" (например, если Вы хотите отобразиться с индексом или чем-то как этот), можно связать перечислители с each_with_index методом или просто использовать with_index:

blahs.each_with_index.map { |blah, index| something(blah, index)}

blahs.map.with_index { |blah, index| something(blah, index) }

Это - что-то, что можно сделать от рубиновых 1.8.7 и 1.9.

189
ответ дан 24 November 2019 в 00:16
поделиться
[:a, :b, :c].each_with_index do |item, i|
  puts "index: #{i}, item: #{item}"
end

Вы не можете сделать этого с для. Мне обычно нравится более декларативный вызов каждому лично так или иначе. Частично, потому что его легкое для перехода к другим формам, когда Вы поражаете предел для синтаксиса.

54
ответ дан 24 November 2019 в 00:16
поделиться

Да, это collection.each, чтобы сделать циклы, и затем each_with_index для получения индекса.

, вероятно, необходимо прочитать книгу Ruby, потому что это - фундаментальный Ruby и если Вы не знаете это, Вы собираетесь быть в большой проблеме (попытка: http://poignantguide.net/ruby/ ).

Взятый от исходного кода Ruby:

 hash = Hash.new
 %w(cat dog wombat).each_with_index {|item, index|
   hash[item] = index
 }
 hash   #=> {"cat"=>0, "wombat"=>2, "dog"=>1}
10
ответ дан 24 November 2019 в 00:16
поделиться

Относительно Вашего вопроса о выполнении i++, ну, в общем, Вы не можете сделать этого в Ruby. i += 1 оператор, который Вы имели, точно, как Вы, как предполагается, делаете это.

4
ответ дан 24 November 2019 в 00:16
поделиться

Если blahs класс, который смешивается в Счетном, необходимо смочь сделать это:

blahs.each_with_index do |blah, i|
  puts("#{i} #{blah}")
end
1
ответ дан 24 November 2019 в 00:16
поделиться

перечисляющий счетный ряд довольно хорош.

2
ответ дан 24 November 2019 в 00:16
поделиться

Если у вас нет новой версии each_with_index , вы можете использовать метод zip для объединения индексов с элементами:

blahs = %w{one two three four five}
puts (1..blahs.length).zip(blahs).map{|pair|'%s %s' % pair}

которые производит:

1 one
2 two
3 three
4 four
5 five
6
ответ дан 24 November 2019 в 00:16
поделиться
Другие вопросы по тегам:

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