我有一个对象数组。我希望以仅返回元素值与特定过滤器匹配的对象的方式对其进行过滤。就像元素值包含一些字符串一样,该对象将在返回数组中存在。
例如,如果我有一个像这样的数组:
[
{ "name":"Ford", "models":[ "Fiesta", "Focus", "Mustang" ] },
{ "name":"BMW", "models":[ "320", "X3", "X5" ] },
{ "name":"Fiat", "models":[ "500", "Panda" ] }
]
我希望它按名称元素过滤,并且只返回名称元素中包含“ F”的对象。就像它只会返回以下内容
[
{ "name":"Ford", "models":[ "Fiesta", "Focus", "Mustang" ] },
{ "name":"Fiat", "models":[ "500", "Panda" ] }
]
我该如何在Loopback角度SDK中执行此操作?
最佳答案
您可以组合方法Array.prototype.filter()和String.prototype.includes():
const data = [{"name": "Ford","models": ["Fiesta", "Focus", "Mustang"]},{"name": "BMW","models": ["320", "X3", "X5"]},{"name": "Fiat","models": ["500", "Panda"]}];
const filterByStr = 'F';
const result = data.filter(obj => obj.name.includes(filterByStr));
console.log(result);