如何用原生JavaScript筛选含特定ID的嵌套JSON对象?
原生JavaScript筛选特定ID的国家GeoJSON对象
没问题,完全用原生JS就能搞定,不用依赖jQuery这类库~
你的GeoJSON结构里,所有国家的几何数据都存在world.objects.countries.geometries这个数组里,我们可以用数组原生的filter()方法来筛选符合条件的项,步骤很简单:
基础实现:筛选指定单个/多个ID
先拿到所有国家的数组,再用filter()判断每个对象的id是否是你要的4或24:
// 获取所有国家的几何对象数组 const allCountries = world.objects.countries.geometries; // 筛选id为4或24的国家 const filteredCountries = allCountries.filter(country => { return country.id === 4 || country.id === 24; }); // 输出筛选结果 console.log(filteredCountries);
更灵活的写法:适配多个ID场景
如果后续你需要筛选更多ID(比如再加个8),把目标ID放到一个数组里,用includes()方法会更易维护:
// 可以随时添加或修改目标ID列表 const targetIds = [4, 24]; const filteredCountries = allCountries.filter(country => targetIds.includes(country.id));
简单说明下原理
filter()是ES5就支持的数组原生方法,它会遍历数组中的每一项,把符合回调函数条件的元素收集起来,返回一个全新的数组,不会改动原数组,非常安全可靠。
内容的提问来源于stack exchange,提问作者lastnoob
相关产品推荐
相关产品推荐

