ภาพรวม
สมมติว่าเรามีอาร์เรย์ของอ็อบเจ็กต์:
const arr = [
{ name: 'Paul', country: 'Canada' },
{ name: 'Lea', country: 'Italy' },
{ name: 'John', country: 'Italy' }
];
เราต้องการกรองอาร์เรย์อ็อบเจ็กต์โดยใช้คำค้นหาสตริง การค้นหาต้องตรวจสอบทุกคุณสมบัติของอ็อบเจ็กต์
เช่น พิมพ์ "lea" -> คืนอ็อบเจ็กต์ที่มี "lea" ในคุณสมบัติใดๆ, พิมพ์ "italy" -> คืนอ็อบเจ็กต์ที่มี "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' }
]