我有一个像这样的json:
Constants
Contents(Array)
->Sections(Array)
-->sections.attribute1
->constants.attribute1
->constants.attribute2
Templates
我已经过滤了json以获取带有此代码的内容集合:
var viasModel = Backbone.Model.extend({});
var viasCollection = Backbone.Collection.extend({
model: viasModel,
url: TEMPLATES_SERVICE,
parse: function(data){
return data.contents.data;
},
initialize: function(){
this.fetch();
},
route: function(via){
return this.where({viaId: via});
}
});
假设我已经使用路径功能过滤了集合。
如何过滤Sections(Array)并仅获取已过滤集合的各个部分的元素?
它是否包含路由的每个返回值?
this.where({viaId: via});
我是否必须找到如何嵌套集合?任何帮助将不胜感激。
- 编辑 -
当我将变量赋值给arr时,我得到一个带属性的对象。
attributes: Object
-name: 'test',
-sections: Array[9]
--0: Object
---itemId: 'inicio'
---content: Array[2]
--1: Object
---itemId: 'hola'
---content: Array[2]
我想获得部分Array的itemId ==='inicio'的内容Object。
我不想看起来很糟糕,所以如果你可以指导我或给我一些帮助,我很好。
谢谢。
答案 0 :(得分:0)
好的,谢谢你的评论,似乎这基本上是关于过滤数组,这是我的建议:
var arr = collectionGenerated.where(name: 'attribute');
var result = $.grep(arr, function(val) {
return val.itemId == 'attribute';
});
结果是数组只包含适合两个滤镜的内容。
- 编辑 -
我想你的数据结构是
var result = $.grep(arr.sections, function(val) {
return val.itemId === 'inicio';
});