[英]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.