2012-04-02 90 views
0

我有一個數組,如下所示。如何在Ruby中排除數組成員,排除特定值?

例如:

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

我想補充除了 '*' 使用Ruby的值,請給我一些線索爲

+0

你是如何在第一時間結束了這樣的陣列,什麼都有你的嘗試? :) – Rahul 2012-04-02 05:31:05

+0

「array.inject(:+)」,但我認爲它不正確的方式 – Jeet 2012-04-02 05:33:38

回答

1

首先下面是無效的數組。

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

如果陣列是

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

如果要總結陣列不含1然後使用

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

但我有一個數組,因爲我已經提到上述 – Jeet 2012-04-02 05:46:42

+0

我在控制檯中初始化您的數組時遇到語法錯誤。 – 2012-04-02 05:49:36

+0

我已經從HTML的「frameset」標記中檢索了這些值,它是frameset中幀的大小,所以我想檢查它中的「*」的大小 – Jeet 2012-04-02 05:52:16

0

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

+0

它不工作。它顯示錯誤,如下面的「未定義的方法」,除了[「20%」,「30%」,「*」,「10%」]:Array(NoMethodError)「 – Jeet 2012-04-02 05:49:03

+1

它應該是'reject', soundar的答案。 – l0b0 2012-04-02 09:04:56

+1

哎呀,肯定'拒絕':)我的壞 – MikDiet 2012-04-02 11:02:25