Вы можете использовать map
для циклического перемещения по массиву и filter
для фильтрации country_from
var sampleobj = [{"id":"trans","country_from":[{"country":"SG","currency":["SGD","USD"]},{"country":"TH","currency":["THB","USD"]}]},{"id":"fund","country_from":[{"country":"TH","currency":["THB","USD"]},{"country":"UK","currency":["GBP","USD"]}]}];
var source = "TH";
let result = sampleobj.map(({id,country_from}) => ({id,country_from: country_from.filter(o => o.country === source)}));
console.log(result);
Вы можете добавить еще filter()
, чтобы возвращать объект только с country_from
var sampleobj = [{
"id": "trans",
"country_from": [{
"country": "SG",
"currency": ["SGD", "USD"]
}, {
"country": "TH",
"currency": ["THB", "USD"]
}]
},
{
"id": "fund", //Will not be returned since no TH on country_from
"country_from": [{
"country": "ID",
"currency": ["THB", "USD"]
}, {
"country": "UK",
"currency": ["GBP", "USD"]
}]
}
]
var source = "TH";
let result = sampleobj.map(({id,country_from}) => ({id,country_from: country_from.filter(o => o.country === source)}))
.filter(o => o.country_from.length);
console.log(result);