2012-04-02 98 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