Computer >> Máy Tính >  >> Lập trình >> Javascript

Lọc đối tượng JavaScript

Ở đây chúng ta cần tạo một hàm nhận một đối tượng và một chuỗi tìm kiếm và lọc các khóa theo đối tượng bắt đầu bằng chuỗi tìm kiếm và trả về đối tượng

Đây là mã để làm như vậy -

Ví dụ

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));

Giải thích mã -

Chúng tôi chỉ cần lặp lại từng khóa của đối tượng, nếu nó bắt đầu bằng đối số str mà chúng tôi nhận được, thì chúng tôi lưu nó vào một đối tượng khác, nếu không chúng tôi tiếp tục lặp lại.

Với mục đích của vấn đề này, chúng tôi đã lặp lại từng khóa và chuyển khóa được yêu cầu thành một đối tượng mới, nhưng để có một giải pháp hiệu quả hơn thay vì tạo một đối tượng mới, chúng tôi có thể xóa các thuộc tính không mong muốn khỏi đối tượng ban đầu.

Đầu ra

Đầu ra trong bảng điều khiển sẽ là -

{
   ENG:"English"
}