过滤 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"
}

更新日期:18-Aug-2020

190 次浏览

开启你的 职业道路

通过完成课程获得认证

入门
广告