Найдите значение в Массиве

Немного отличающийся подход должен был бы использовать xargs:

find /path/to/jpgs -type f -print0 | xargs -0 jhead -v | grep 123

, который я всегда находил немного легче понять и адаптироваться (-print0 и-0 аргументов необходимы для преодоления имен файлов, содержащих пробелы)

Это могло бы (не протестированный) быть более эффективным, чем использование - должностное лицо, потому что это передаст список по каналу файлов к xargs, и xargs удостоверяется, что jhead командная строка не становится слишком длинной.

110
задан Jim Lewis 26 March 2011 в 17:21
поделиться

5 ответов

Я предполагаю, что вы пытаетесь выяснить, существует ли определенное значение внутри массива, и в этом случае вы можете использовать Array # include? (Value):

a = [1,2,3,4,5]
a.include?(3)   # => true
a.include?(9)   # => false

Если вы имеете в виду что-то еще, проверьте Ruby Array API

112
ответ дан 24 November 2019 в 03:11
поделиться

для этого вы можете использовать Array.select или Array.index .

21
ответ дан 24 November 2019 в 03:11
поделиться

Вот так?

a = [ "a", "b", "c", "d", "e" ]
a[2] +  a[0] + a[1]    #=> "cab"
a[6]                   #=> nil
a[1, 2]                #=> [ "b", "c" ]
a[1..3]                #=> [ "b", "c", "d" ]
a[4..7]                #=> [ "e" ]
a[6..10]               #=> nil
a[-3, 3]               #=> [ "c", "d", "e" ]
# special cases
a[5]                   #=> nil
a[5, 1]                #=> []
a[5..10]               #=> []

или вот так?

a = [ "a", "b", "c" ]
a.index("b")   #=> 1
a.index("z")   #=> nil

См. Руководство .

23
ответ дан 24 November 2019 в 03:11
поделиться

Используйте:

myarray.index "valuetoFind"

Это вернет вам индекс нужного элемента или nil, если ваш массив не содержит значения.

15
ответ дан 24 November 2019 в 03:11
поделиться

Спасибо за ответы.

Мне понравилось это:

puts 'find' if array.include?(value)
1
ответ дан 24 November 2019 в 03:11
поделиться
Другие вопросы по тегам:

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