2012-04-02 3 views
0

Ich habe eine Reihe von wie unten angegeben.Wie Summen Array-Mitglieder in Ruby ohne bestimmten Wert?

Zum Beispiel:

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

I mit Ausnahme der Werte hinzufügen möchten '*' mit Ruby, bitte geben Sie mir einen Hinweis für die

+0

Wie haben Sie mit einer solchen Anordnung in erster Linie am Ende und was haben hast du es versucht? :) – Rahul

+0

"array.inject (: +)", Aber ich denke, es ist nicht richtig – Jeet

Antwort

1

Zuerst unten nicht gültig Array ist.

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

Wenn Ihr Array ist

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

Wenn Sie Array summieren möchten ohne 1 dann

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

Aber ich habe ein Array, wie ich oben erwähnt habe – Jeet

+0

Ich bekomme Syntaxfehler beim Initialisieren Ihres Arrays in der Konsole. –

+0

Ich habe diese Werte von "Frameset" -Tag von HTML abgerufen, es ist eine Größe von Frames in Frameset, so dass ich die Größe von "*" darin überprüfen möchte – Jeet

0

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

+0

Es funktioniert nicht. Es zeigt mir Fehler wie unten "undefined Methode' außer 'für ["20%", "30%", "*", "10%"]: Array (NoMethodError) " – Jeet

+1

Es sollte' reject' sein, wie in @ Soundars Antwort. – l0b0

+1

oops, sure 'reject' :) Meine schlechte – MikDiet