gpt4 book ai didi

javascript - 在函数中传递 JSON 键

转载 作者:太空宇宙 更新时间:2023-11-04 15:38:16 24 4
gpt4 key购买 nike

是否可以将对象的键指定为函数参数?例如,如果我想创建一个过滤函数,可以通过marker.element.country或marker.element.population过滤多个 map 标记?

这样我就可以编写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);
});
}
};

最佳答案

其实你可以使用标准数组filter函数来实现:

var markers = [ { country: 'England', population: 1000}, {country: 'Italy', population: 50}];
function customfilter(value, filterBy){
return markers.filter(function(el) {
if(el.hasOwnProperty(filterBy) && el[filterBy] === value) {
return el;
}
});
};
console.log(customfilter('Italy', 'country'));

关于javascript - 在函数中传递 JSON 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44118115/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com