如何使用 lodash 在 Json 文件的数组中仅获取具有特定 atribute 的对象
How to get only objects that have a certain atribute inside an array in a Json file using lodash?
Codepen: http://codepen.io/giorgiomartini/pen/jEvaxZ
我有这个 API:
http://private-5d90c-kevinhiller.apiary-mock.com/angular_challenge/horror_movies
其结构如下:
如您所见,有一个offers
数组,它有一个provider_id,例如,我只想获取提供程序 2 中的电影。
{
"id": 140524,
"title": "Dracula Untold",
"poster": "https://images.justwatch.com/poster/298962/s332",
"full_path": "https://www.justwatch.com/us/movie/dracula-year-zero",
"object_type": "movie",
"original_release_year": 2014,
"offers": [
{
"monetization_type": "buy",
"provider_id": 2,
"retail_price": 14.99,
"currency": "USD",
"urls": {
"standard_web": "https://itunes.apple.com/us/movie/dracula-untold/id921386678?uo=4"
},
"presentation_type": "hd"
},
{
"monetization_type": "buy",
"provider_id": 2,
"retail_price": 14.99,
"currency": "USD",
"urls": {
"standard_web": "https://itunes.apple.com/us/movie/dracula-untold/id921386678?uo=4"
},
"presentation_type": "sd"
},
...
例如,如何仅获得具有provider_id 2的电影?
谢谢。
var all = yourArrayOfObjects;
var onlyWant = _.filter(yourArrayOfObjects, function(item) {
return _.any(item.offers, function(offer) {
return offer.provider_id === 2;
});
}
试试这个
var data = _.chain(data)
.map(function(el) {
el.offers = _.chain(el.offers)
.uniq('provider_id')
.filter(function(offer) {
return offer.provider_id === 2;
})
.value();
return el;
})
.filter(function(el) {
return el.offers && el.offers.length;
})
.value();
例
相关文章:
- Backbone虹吸以获取对象数组
- javascript在数组中获取对象数组中键的所有不同值
- 使用fabric.js从矩形区域获取对象,并将该区域绘制到画布上
- Undercore.js获取对象数组中键对象的值
- 从数组中获取对象
- 在Sahi中获取[对象]作为按钮值
- 如何从jquery自动完成中获取对象值
- 从数组NodeJs中获取对象值
- 如何在javascript中在运行时获取对象/数组
- 从Javascript中谓词的数组中获取对象
- 如何获取对象名称
- 打字.如何获取对象'的属性名称与其值不同
- 扩展引导程序的typeahead以便获取对象而不是字符串
- 正在获取对象内部数组中的对象总数
- JavaScript:获取对象的评估属性
- minko从dom获取对象
- 如何获取对象
- 从类内部获取对象名称(JavaScript)
- 如何获取对象名称
- 获取对象的所有可能组合,其中值的总和与数字匹配