Я использую Ruby 2.4. У меня есть массив, который я хочу разделить на две части, в которых первый массив будет либо буква «а» или «б», а второй массив будет все остальное, так что у меня есть этаКак разбить массив на два, если один из элементов - это нуль?
arr1, arr2 = data_col.map { |x| a, b, c = x.partition(/^[ab][[:space:]]+/i); [b.strip, a + c] }.transpose
Однако , это не удается, если один из элементов в массиве равен нулю. Как мне объяснить это и заставить два элемента nil быть в результирующих массивах? То есть, если исходный массив
["A bcd", nil, "B 123"]
результирующих массивов будет
["A", nil, "B"], ["bcd", nil, "123"]
?
Это не работает. Если входной сигнал «[» C abc », nil,« B abc »] ', то с помощью вашей функции над результатом будут два массива, один с« [«C», nil, «B»] ». Я не хочу разбить leter «C» на свой собственный массив, только буквы «a» или «b». –
Это была бы полезная информация. Я работал исходя из предположения, как я сказал выше. Возможно, вы могли бы предоставить образцы данных, которые бы включили встречный пример. Рад, что у вас есть ответ, который работает. – moveson