2012-04-02 3 views
0

У меня есть массив, как показано ниже.Как суммировать элементы массива в Ruby, исключая конкретное значение?

Например:

array = [20%,*,30%, 10%] 

Я хочу, чтобы добавить значения, кроме «*» с помощью рубина, пожалуйста, дайте мне ключ для этого

+0

Как вы в конечном итоге с такого массива в первую очередь, и то, что есть ваш пробовал? :) – Rahul

+0

«array.inject (: +)», но я думаю, что это не так. – Jeet

ответ

1

Первый ниже не является действительным массивом.

array = [20%,*,30%, 10%] 

Если массив

array = [ 20, 1, 1, 1, 30, 10 ] 

Если вы хотите суммировать массив за исключением 1, а затем использовать

array.reject { |value| value == 1 }.sum 
=> 60 
+0

Но у меня есть массив, как я упомянул выше – Jeet

+0

Я получаю синтаксическую ошибку при инициализации массива в консоли. –

+0

Я получил эти значения из тега «frameset» HTML, Размер фреймов в наборе фреймов, поэтому я хочу проверить размер «*» в нем. – Jeet

0

array.except{ |a| a == * }.reduce(:+)

+0

Это не работает. Он показывает мне ошибку как ниже «неопределенный метод' except »для [" 20% "," 30% "," * "," 10% "]: Array (NoMethodError)" – Jeet

+1

Это должно быть 'reject', как в @ звуковой сигнал. – l0b0

+1

oops, sure 'reject' :) My bad – MikDiet

Смежные вопросы