2012-04-12 3 views
2

JS 여기 Newb.함수에서 JavaScript 해시를 인수로 사용하려면 어떻게해야합니까?

함수에 대한 작업 설명서에서 "함수에 대한 인수는 키가 필터링 될 (데이터베이스) 필드 인 JavaScript 해시 여야하며 그 값은 문자열 또는 문자열의 배열 ". 나를 위해 작동

예 :이 조각의

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

어느 내가() 완료 필터 후 무엇을보고에서 말했다 도시를 제거하는 나를 위해 작동합니다.

이제는 이전에 작성/채우는 해시를 직접 전달하고 싶습니다.

방법을 알아낼 수 없습니다.

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

을 ...하지만 기쁨 :

나는 시도하지했습니다. 나는 문서를 통해 검색을 해왔지만이 시점에서 자바 스크립트 어휘/인텔리전스가 느려지는데 정말 뭘 찾고 있는지 모르겠다.

누구나 올바른 방향으로 밀어 줄 수 있습니까? 많은 감사!

답변

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)

은 "해시"개체 자체이다 .. "keys"는 필드이며,이 경우 "CitiesILoath"이고 해당 키의 값은 문자열로 채워진 배열입니다.

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

당신은 객체를 원하는 (그것의 이름은 중요하지 않기 때문에, 나는 그것이 X 전화 할게) CitiesILoathe라는 하나 개의 속성을 가지고있다.

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

당신은이 같은 수행 할 수 있습니다 : 당신이 그것에 추가 push을 사용할 수 있도록 그 속성은 배열입니다

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

추가 설명해 주셔서 감사합니다. 감사합니다. –

관련 문제