Надеюсь, я еще не слишком поздно, но у меня есть альтернативный метод, кроме использования Pipes.По сути, этот подход требует, чтобы вы получили ключи / свойства для объекта, а затем мы перебираем массив для поиска термина в каждом свойстве.
const data = [{
"productId": 1,
"productName": "product 1",
"productPrice": 500,
"productDescription": "Des 1 enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni.",
"productCategory": "cat 1",
"productAvailability": 0
},
{
"productId": 2,
"productName": "product 2",
"productPrice": 1000,
"productDescription": "Des 2 enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni.",
"productCategory": "cat 2",
"productAvailability": 0
},
{
"productId": 3,
"productName": "product 3",
"productPrice": 2000,
"productDescription": "Des 3 enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni.",
"productCategory": "cat 2",
"productAvailability": 0
},
{
"productId": 4,
"productName": "PRODUCT 4",
"productPrice": 3000,
"productDescription": "Des 4 enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni.",
"productCategory": "cat 1",
"productAvailability": 0
}
];
function search(searchTerm) {
const val = searchTerm.toLowerCase();
const keys = Object.keys(data[0]);
//console.log(keys)
const searchResults = data.filter(item => {
// iterate through each row's data by the properties
for (let i = 0; i < keys.length; i++) {
if (item[keys[i]].toString().toLowerCase().indexOf(val) !== -1 || !val) {
return true;
}
}
});
console.log(searchResults);
return searchResults;
}
search('Des 2 enim ipsam');