2016-11-13 4 views
0

Wie aktualisiert man das Array anhand von Symbolen? WieAktualisieren von Array basierend auf Symbolen Ruby

Ich überlegte, den Index zu finden, wo der String liegt und dann löschen, um einen anderen aktualisierten Werte bei diesem Index einzufügen. Ist das der richtige Ansatz?

+0

Ihre Frage wurde nicht richtig beantwortet. Versuchen Sie, Zeichenfolge durch einen anderen Wert zu ersetzen? Benutzer ** gsub ** dafür. – Sivalingam

+0

Nein, der Zählwert muss aktualisiert werden, wenn ich auf eine andere Zeichenfolge mit dem Namen "Hallo" stoße. Also das neue Daten-Array würde gerne data = [: label => "Hallo",: value => 2] –

+2

Vielleicht ist es nur ich, aber ich verstehe nicht, was Sie erreichen wollen. Können Sie bitte eine Beispieleingabe und die erwartete Ausgabe zu Ihrer Frage hinzufügen? – spickermann

Antwort

1

Verwenden Sie einfach find, um die Übereinstimmung zu erhalten, vorausgesetzt, es ist die einzige im Array. Sie können select verwenden, um mehrere Übereinstimmungen zu erhalten. Danach aktualisieren Sie einfach die Anzahl

Da Ihr Beispiel aus dem Zusammenhang gerissen ist und Fehler enthält, habe ich mir die Freiheit genommen, ein vollständigeres Beispiel zu machen.

data = [] 
strings = ["Hello", "Bye", "Hello", "Hi"] 

strings.each do |string| 
    hash = data.find{ |h| h[:label] == string } 
    if hash.nil? 
    data << {label: string, value: 1} 
    else 
    hash[:value] += 1 
    end 
end 
+0

Danke, das war es. –

+0

Ja, ich stimme zu, ich hätte diese Fehler beheben sollen. –

Verwandte Themen