簡體   English   中英

通過數組元素的子字符串環回過濾數組中的對象

[英]Loopback filter objects in an array by substring of its element

我有一個對象數組。 我希望以僅返回元素值與特定過濾器匹配的對象的方式對其進行過濾。 就像元素值包含一些字符串一樣,該對象將在返回數組中存在。

例如,如果我有一個像這樣的數組:

[
    { "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); 

您可以使用以下代碼進行操作,它使用Array.prototype.filter()String.prototype.match()

 let arr = [ { "name":"Ford", "models":[ "Fiesta", "Focus", "Mustang" ] }, { "name":"BMW", "models":[ "320", "X3", "X5" ] }, { "name":"Fiat", "models":[ "500", "Panda" ] } ] arr = arr.filter(function(val){ return val && val.name && val.name.match(/F/g); }); console.log(arr); 

您需要做的是遍歷數組並檢查條件是否得到滿足。

希望這可以幫助。

 var arr=[ { "name":"Ford", "models":[ "Fiesta", "Focus", "Mustang" ] }, { "name":"BMW", "models":[ "320", "X3", "X5" ] }, { "name":"Fiat", "models":[ "500", "Panda" ] } ]; document.addEventListener('DOMContentLoaded',function(){ console.log(arr.length); for(var i=0;i<arr.length;i++){ if(arr[i].name.startsWith("F")){ Object.keys(arr[i]).forEach(function(key){ alert(arr[i][key]); }) } } }) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM