过滤JavaScript对象
在这里,我们需要创建一个函数,该函数接受一个对象和一个搜索字符串,并过滤以该搜索字符串开头并返回该对象的对象键
这是这样做的代码-
示例
const obj = { "PHY": "Physics", "MAT": "Mathematics", "BIO": "Biology", "COM": "Computer Science", "SST": "Social Studies", "SAN": "Sanskrit", "ENG": "English", "HIN": "Hindi", "ESP": "Spanish", "BST": "Business Studies", "ECO": "Economics", "CHE": "Chemistry", "HIS": "History" } const str = 'en'; const returnFilteredObject = (obj, str) => { const filteredObj = {}; Object.keys(obj).forEach(key => { if(key.substr(0, str.length).toLowerCase() === str.toLowerCase()){ filteredObj[key] = obj[key]; } }); return filteredObj; }; console.log(returnFilteredObject(obj, str));
代码说明-
我们只是简单地遍历对象的每个键,如果它以我们收到的作为参数的str开头,则将其保存在另一个对象中,否则继续进行迭代。
出于这个问题的目的,我们遍历了每个键,并将所需的键推到了一个新对象中,但是对于性能更高的解决方案,而不是创建一个新对象,我们可以从原始对象中删除不需要的属性。
输出结果
控制台中的输出将为-
{ ENG:"English" }