Giả sử chúng ta có mảng đối tượng như sau:
const arr = [{
name: 'Paul',
country: 'Canada',
}, {
name: 'Lea',
country: 'Italy',
}, {
name: 'John',
country: 'Italy',
}, ];Chúng ta cần thiết kế cách lọc mảng đối tượng dựa trên từ khóa chuỗi. Tìm kiếm phải thực hiện trên bất kỳ thuộc tính nào của đối tượng.
Ví dụ:
Khi gõ "lea", duyệt qua tất cả đối tượng và thuộc tính để trả về đối tượng chứa "lea". Khi gõ "italy", duyệt qua tất cả đối tượng và thuộc tính để trả về đối tượng chứa "italy".
Ví dụ
Mã thực hiện:
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'));Kết quả
Kết quả in ra console:
[
{ name: 'Lea', country: 'Italy' },
{ name: 'John', country: 'Italy' }
]