ruby hash, um javascript-hash
Habe ich ein ruby-hash, den ich konvertieren möchten, in einer bestimmten javascript-hash.
Hier ist der ruby-hash keyval
{
"Former Administration /Neutral"=>24,
"Media Personality /P"=>2,
"Journalist /Neutral"=>32,
"Consultant /Neutral"=>2,
...
"Journalist /P"=>11,
"Expert /Neutral"=>1,
"Activist /Neutral"=>15
}
In javascript-hash
{data: "Former Administration /Neutral", frequency: (24) },
{data: "Media Personality /P", frequency: (2) },
{data: "Journalist /Neutral", frequency: (32) },
{data: "Consultant /Neutral", frequency: (2) },
...
{data: "Journalist /P", frequency: (11) },
{data: "Expert /Neutral", frequency: (1) },
{data: "Activist /Neutral", frequency: (15) }
Versucht
var obj = {};
for (var i = 0; i < <%= keyval.size %>; i++) {
obj["data"] = <%= keyval.keys[i] %>;
obj["frequency"] = '(' + <%= @keyval.values[i] %> + ')';
}
Aber der loop funktioniert nicht obj
Gegenzug das erste element der ruby-hash frequency=24
und nicht entkommen den Raum, in Former Administration
. Warum?
- Diese definitiv nicht funktionieren kann, wie
i
ist eine JS-variable, aber Sie versuchen, es in die RoR-code. Und Sie überschreiben das gleiche Objekt in jedem Zyklus der Schleife. Benötigen Sie eine Ruby-Schleife, keine JavaScript-Schleife.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es eine to_json-Methode für die Konvertierung von ruby hashes und arrays in json-Objekten. Sie können ein array von hashes mit Hilfe der ersten hash, dann rufen Sie to_json auf Sie. Dann, Sie tun alle Ihre Daten-manipulation in der Sprache ruby, und einfach konvertieren Sie das format json am Ende.
gibt
Sagten Sie, Sie wollten eine "javascript-hash", aber was es sieht aus wie Sie haben in Ihrer Frage, am Ende, ist eines Arrays ohne eckige Klammern ein. Mein Ergebnis ist ein gültiges json-Objekt Darstellung, die ein array von Objekten. Ich denke, das ist eigentlich das, was Sie wollen.
"
und haben"[{data:"Journalist / P",frequency:11},{data:"Activist / Neutral",frequency:15},{data:"Former Administration / Neutral","frequency":24},{data:"Expert / Neutral",frequency:1},{data:"Journalist / Neutral",frequency:32},{data:"Consultant / Neutral",frequency:2},{data:"Media Personality / P",frequency:2}]"
arr.to_json.html_safe
hat den job.Können Sie dothis mit
map
undjoin
die map-Methode bietet den Schlüssel, wie
k
und den Wert alsv
in diesem Beispiel."
.Fehler:SyntaxError: syntax error {"Former Administration / Neutral"=>44, "Me
Versuchen Sie dies:
So erhalten Sie ein array dieser Objekte.
var data = []; <% for i in [email protected] %> data.push({}); data[<%= i %>]["data"] = "<%= @keyval.keys[i] %>"; data[<%= i %>]["frequency"] = '(' + <%= @keyval.values[i] %> + ')'; <% end %> console.log(data);
aber ist das hinzufügen vonobject
vor jedem element...[Object { data="Former Administration / Neutral", frequency="(24)"}, Object { data="Media Personality / P", frequency="(2)"}, ...]
Wie man es loswerden?