2012-04-12 3 views
2

JS Newb hier.Wie verwende ich einen JavaScript-Hash als Argument in einer Funktion?

Ich arbeite mit einer Funktion, und die Dokumentation für diese Funktion sagt "Das Argument für die Funktion muss ein JavaScript-Hash sein, wobei der Schlüssel das zu filternde (Datenbank) -Feld ist und der Wert entweder eine Zeichenfolge ist oder ein Array von Strings ".

Beispiele, die für mich arbeiten:

//New York Knicks fan.... 
viz.filter({CitiesILoathe: ['Boston']}); 
viz.filter({CitiesILoathe: ['Boston','Miami']}); 

Jede dieser Schnipsel für mich arbeiten, sagte Städte von Entfernen, was ich nach dem Filter (siehe) abgeschlossen ist.

Jetzt möchte ich direkt einen Hash übergeben, die ich früher erstellen/füllen.

Ich kann nicht herausfinden, wie.

Ich habe versucht:

var CitiesILoathe= new Object(); //my "hash" 
CitiesILoathe['Boston'] = 1; 
CitiesILoathe['Miami'] = 2; 
viz.filter({CitiesILoathe}); // also tried same thing w/o curly braces 

... aber keine Freude. Ich habe durch Docs gesucht, aber mein JavaScript-Vokabular/Intelligenz ist zu diesem Zeitpunkt langsam niedrig, ich weiß wirklich nicht, wonach ich suche.

Kann mir jemand einen Schub in die richtige Richtung geben? Danke vielmals!

Antwort

2
//inline declaration 
var CitiesILoath = { 
    "CitiesILoath": [ 
     "Boston" 
     ,"Miami" 
    ] 
} 
viz.filter(CitiesILoath) 

//ad-hoc 
var myFilter = {}; //same as "new Object()" 
myFilter["CitiesILoath"] = []; //same as "new Array()" 
myFilter["CitiesILoath"].push("Boston"); //append to array 
myFilter["CitiesILoath"].push("Miami"); //append to array 

//or, use decimal notation 
var myFilter = {}; //same as "new Object()" 
myFilter.CitiesILoath = []; //same as "new Array()" 
myFilter.CitiesILoath.push("Bostom"); //append to array 
myFilter.CitiesILoath.push("Miami"); //append to array 
viz.filter(myFilter)

Die "Hash" ist das Objekt selbst .. die "Schlüssel" sind die Felder, in diesem Fall "CitiesILoath" und der Wert für diese Schlüssel ist ein Array, das mit Strings gefüllt ist.

1
var x= { "CitiesILoathe" : [ 
    "Boston", 
    "Miami" 
] }; 
viz.filter(x); 
1

Sie wollen ein Objekt (seinen Namen keine Rolle spielt, also werde ich es nennen x), die CitiesILoathe genannt eine Eigenschaft hat. Diese Eigenschaft ist ein Array, so dass Sie push verwenden können, um es hinzuzufügen:

var x = {CitiesILoathe: []}; 
x.CitiesILoathe.push('Boston'); 
x.CitiesILoathe.push('Miami'); 
viz.filter(x); 

Sie auch das wie tun können:

var CitiesILoathe = []; 
CitiesILoathe.push('Boston'); 
CitiesILoathe.push('Miami'); 
viz.filter({CitiesILoathe: CitiesILoathe}); 
+0

Danke für die zusätzliche Erklärung. Geschätzt. –

Verwandte Themen