[英]Looping through array of objects by object property
我有一系列對象,其中包含一些有關我要觸發的流行音樂的信息。 它看起來像這樣:
[
{
"url":"www.fakeurl/redirect1",
"providerName":"ebay",
"retailerName":"eBay",
"providerAndRetailer":"ebayeBay",
"popAllowed":true
},
{
"url":"www.fakeurl/redirect2",
"providerName":"pricerunner",
"retailerName":"Currys",
"providerAndRetailer":"pricerunnerCurrys",
"popAllowed":true
},
{
"url":"www.fakeurl/redirect3",
"providerName":"kelkoo",
"retailerName":"Currys",
"providerAndRetailer":"kelkooCurrys",
"popAllowed":true
},
{
"url":"www.fakeurl/redirect4",
"providerName":"ebay",
"retailerName":"eBay",
"providerAndRetailer":"ebayeBay",
"popAllowed":true
},
{
"url":"www.fakeurl/redirect5",
"providerName":"pricerunner",
"retailerName":"Argos",
"providerAndRetailer":"pricerunnerArgos",
"popAllowed":true
},
{
"url":"www.fakeurl/redirect6",
"providerName":"ebay",
"retailerName":"eBay",
"providerAndRetailer":"ebayeBay",
"popAllowed":true
},
{
"url":"www.fakeurl/redirect7",
"providerName":"ecn",
"retailerName":"Argos",
"providerAndRetailer":"ecnArgos",
"popAllowed":true
}
]
我還提供了一系列要觸發命令的提供程序:
let acceptedProviders = ['ebay', 'connexity', 'ecn', 'kelkoo', 'nexttag', 'pricerunner', 'shopping'];
我想按我的acceptedProviders的順序遍歷數組。 當在對象中找到與“ providerName”屬性匹配的內容時,我希望循環停止並添加“ popAllowed”屬性:false,因此可以將其從列表中過濾掉。 然后它將再次循環,仍在我接受的提供程序數組中尋找名字,如果找不到,它將移至下一個,直到列表用盡。 我已經嘗試過for循環,但是我似乎無法獲得所需的結果。 任何幫助,不勝感激。
只需遍歷數據並在每個迭代集中進行popAllowed(通過在可接受的提供程序數組中查找該提供程序)
let acceptedProviders = ['ebay', 'connexity', 'ecn', 'kelkoo', 'nexttag', 'pricerunner', 'shopping']; let data = get_data(); data.forEach((item)=>{ item.popAllowed = acceptedProviders.indexOf(item.providerName) === -1; }); console.log(data); function get_data() { return [{ "url": "www.fakeurl/redirect1", "providerName": "ebay", "retailerName": "eBay", "providerAndRetailer": "ebayeBay", "popAllowed": true }, { "url": "www.fakeurl/redirect2", "providerName": "pricerunner", "retailerName": "Currys", "providerAndRetailer": "pricerunnerCurrys", "popAllowed": true }, { "url": "www.fakeurl/redirect3", "providerName": "kelkoo", "retailerName": "Currys", "providerAndRetailer": "kelkooCurrys", "popAllowed": true }, { "url": "www.fakeurl/redirect4", "providerName": "ebay", "retailerName": "eBay", "providerAndRetailer": "ebayeBay", "popAllowed": true }, { "url": "www.fakeurl/redirect5", "providerName": "pricerunner", "retailerName": "Argos", "providerAndRetailer": "pricerunnerArgos", "popAllowed": true }, { "url": "www.fakeurl/redirect6", "providerName": "ebay", "retailerName": "eBay", "providerAndRetailer": "ebayeBay", "popAllowed": true }, { "url": "www.fakeurl/redirect7", "providerName": "ecn", "retailerName": "Argos", "providerAndRetailer": "ecnArgos", "popAllowed": true } ]; } //console.log(data)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.