【发布时间】:2017-05-22 16:42:39
【问题描述】:
是否可以将对象的键指定为函数参数?例如,如果我想创建一个过滤函数,可以通过 marker.element.country 或 marker.element.population 过滤多个地图标记?
这样我可以写filter("England", country)和filter(100000, population)
var markers = [...some array of JSON objects];
function filter(value, filterBy){
markers.forEach(function (marker) {
marker.setVisible(marker.element[filterBy] == value);
//marker.setVisible(marker.element.filterBy == value); -didn't work either
});
};
我不是在寻找解决办法。我知道我可以编写几个单独的函数,或者在这个函数中创建一些条件,根据 filterBy 的值表现不同。
这不好玩:
var markers = [...some array of JSON objects];
function filter(value, filterBy){
if(filterBy == "country"){
markers.forEach(function (marker) {
marker.setVisible(marker.element.country == value);
});
}
if(filterBy == "population"){
markers.forEach(function (marker) {
marker.setVisible(marker.element.population == value);
});
}
};
【问题讨论】:
-
你的两个函数在功能上是等价的。第二个有用吗?
标签: javascript json parameters key