如何在函数中使用JavaScript哈希作为参数?

时间:2012-04-12 19:21:46

标签: javascript hash

JS Newb在这里。

我正在使用一个函数,并且该函数的文档说“函数的参数必须是JavaScript哈希,其中键是要过滤的(数据库)字段,并且值是字符串或一串字符串“。

对我有用的例子:

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

这些片段中的任何一个都适用于我,从filter()完成后我看到的内容中删除所说的城市。

现在我想直接传入我之前创建/填充的哈希。

无法弄清楚如何。

我试过了:

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

......但没有快乐。我一直在搜索文档,但我的JavaScript词汇/智能在这一点上很慢,我真的不知道我在找什么。

任何人都可以向我推进正确的方向吗?非常感谢!

3 个答案:

答案 0 :(得分: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)

“Hash”是对象本身..“keys”是字段,在本例中为“CitiesILoath”,这些键的值是一个数组,用字符串填充。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

你想要一个对象(它的名字并不重要,所以我称之为x),它有一个名为CitiesILoathe的属性。该属性是一个数组,因此您可以使用push添加它:

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

你也可以这样做:

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