如何从JSON解析的数组中筛选出包含'Corp'的元素?
筛选包含'Corp'短语的数组元素解决方案
问题描述
当前代码会返回JSON解析得到的所有数组元素,但需要仅保留包含特定短语'Corp'的元素,尝试使用filter()方法未掌握正确用法。
修改后的代码
var url = "/iaas/api/image-profiles"; System.debug("getImageProfiles url: "+url); var response=System.getModule("pso.vra.util.rest").genericRestAPI(url,null,null); var responseJSON=JSON.parse(response.contentAsString); System.log("Response : "+JSON.stringify(responseJSON)); // 获取所有映射名称数组 var allImageNames = Object.keys(responseJSON.content[0].imageMappings.mapping); // 过滤出包含'Corp'的元素 var filteredImageNames = allImageNames.filter(function(item) { return item.includes('Corp'); }); System.log("过滤后的结果: "+JSON.stringify(filteredImageNames)); return filteredImageNames;
关键说明
- 直接通过
Object.keys()获取映射名称数组,无需来回转换JSON字符串,简化操作 - 使用数组的
filter()方法遍历元素,结合includes()方法判断元素是否包含'Corp'短语,符合需求的元素会被保留到新数组中 - 最终直接返回过滤后的数组即可
示例效果
原数组:
[ "Windows Server 2022", "Windows Server 2019", "Windows Server 2022 - Corp", "Windows Server 2019 - Corp", "Rhel8 - Corp", "Rhel8" ]
过滤后返回的数组:
[ "Windows Server 2022 - Corp", "Windows Server 2019 - Corp", "Rhel8 - Corp" ]
内容的提问来源于stack exchange,提问作者witchkinkofAngmar
相关产品推荐
相关产品推荐

