Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

กรองอาร์เรย์ของวัตถุที่มีคุณสมบัติประกอบด้วยค่าใน JavaScript


สมมติว่าเรามีอาร์เรย์ของวัตถุเช่นนี้ -

const arr = [{
   name: 'Paul',
   country: 'Canada',
}, {
   name: 'Lea',
   country: 'Italy',
}, {
   name: 'John',
   country: 'Italy',
}, ];

เราจำเป็นต้องคิดค้นวิธีการกรองอาร์เรย์ของอ็อบเจ็กต์โดยขึ้นอยู่กับคีย์เวิร์ดสตริง การค้นหาจะต้องทำในคุณสมบัติใดๆ ของวัตถุ

ตัวอย่างเช่น −

When we type "lea", we want to go through all the objects and all their properties to return the objects that contain "lea".
When we type "italy", we want to go through all the objects and all their properties to return the objects that contain italy.

ตัวอย่าง

รหัสสำหรับสิ่งนี้จะเป็น −

const arr = [{
      name: 'Paul',
      country: 'Canada',
   }, {
      name: 'Lea',
      country: 'Italy',
   }, {
      name: 'John',
      country: 'Italy',
}, ];
const filterByValue = (arr = [], query = '') => {
   const reg = new RegExp(query,'i');
   return arr.filter((item)=>{
      let flag = false;
      for(prop in item){
         if(reg.test(item[prop])){
            flag = true;
         }
      };
      return flag;
   });
};
console.log(filterByValue(arr, 'ita'));

ผลลัพธ์

และผลลัพธ์ในคอนโซลจะเป็น −

[
   { name: 'Lea', country: 'Italy' },
   { name: 'John', country: 'Italy' }
]