Как мне объединить массив целых чисел с оператором или (||) в ruby? - PullRequest
0 голосов
/ 07 июня 2018

Итак, у меня есть массив целых чисел, скажем [1,2,3,4].Я должен запросить API, похожий на этот api_query(x: 1 || 2 || 3 || 4) или api_query(x: "1" || "2" || "3" || "4").Я не могу понять, как этого добиться.

При использовании соединения получается что-то вроде "1 || 2 || 3 || 4", которое не дает требуемого вывода.

1 Ответ

0 голосов
/ 07 июня 2018

Если документация API специально не принимает массивы для запросов или "или" для запросов, вы не можете сделать это.

a || b вернет первое "истинное" значение, поэтому 1 || 2 всегда будетверните 1, потому что 1 «истинно» (не ложно, не ноль)

Вы можете сделать это с помощью отдельных вызовов api_query.

def get_first_match(*array)
  array.each do |element|
    match_test = ap_query(x: element)
    return match_test unless match_test['error'] # or whatever test for unsuccessful
  end
  nil
end

Это позволяет вам

my_result = get_first_match(1, 2, 3, 4)

my_result будет содержать первое совпадение или ноль, если совпадений не найдено.

...