使用过滤器或find方法来检索json中的对象



如何通过使用过滤器或查找方法并在fiberAgrupations中查找匹配来获得这些对象之一?数组

I tried doing this:

const landlineRate = this.monolineJsonRates[0].cambioCaudal.getAll()
.filter(landlinedRates => landlinedRates["fiberAgrupations"].includes(this.myPackId));

myPackId是3230,它在第一个对象中。

JSON>:
[{
"id": "T300Mb2",
"idAdditionalImage": "",
"name": "300 Mb",
"sourceId": ["T300Mb2"],
"fiberAgrupations": ["3230","3232","3234","3235","3237","3239","3248","3250","2875","2877","3139","3140","3074","3075"],
"prices": [
{"id": "3149", "price": "34,95"},
{"id": "3156", "price": "39,95"},
],
"availableRates": ["T600Mb2", "T1Gb"]
},
{
"id": "T600Mb",
"idAdditionalImage": "",
"name": "600 Mb",
"sourceId": ["T600Mb"],
"fiberAgrupations": ["2989","2994","2982","2983","3090","3089","3093","3084","2875","2877","3139","3140","3074","3075"],
"prices": [
{"id": "3149", "price": "38,95"},
{"id": "3156", "price": "47,95"},
],
"availableRates": []
},
{
"id": "T600Mb2",
"idAdditionalImage": "",
"name": "600 Mb",
"sourceId": ["T600Mb2"],
"fiberAgrupations": ["3219","3220","3223","3224","3241","3244","3252","3255","2875","2877","3139","3140","3074","3075"],
"prices": [
{"id": "3149", "price": "38,95"},
{"id": "3156", "price": "43,95"},
],
"availableRates": ["T1Gb"]
}],

查找将给出所提供的数组中满足所提供的测试函数的第一个元素。<<strong>过滤器/strong>将给你一个新的数组,其中包含所提供的数组中满足所提供的测试函数的所有元素。

简化:

const rates = [{
'id': 'T300Mb2',
'fiberAgrupations': ['3230', '3232']
},
{
'id': 'T600Mb',
'fiberAgrupations': ['2989', '2994']
},
{
'id': 'T600Mb2',
'fiberAgrupations': ['3219', '3220'],
}];
const myPackId = '3230';
const result = rates.filter(landlinedRates =>
landlinedRates['fiberAgrupations'].includes(myPackId)
);
console.log(result);

给:

[ 
{ 
id: 'T300Mb2', 
fiberAgrupations: [ '3230', '3232' ]
} 
]

最新更新