获取其子属性包含值

时间:2016-02-01 22:22:33

标签: javascript c# jquery asp.net

型号:

public class Header{
    public int ID;
    public int someValue;
    public bool someOtherValue;
    public List<Trailer> Trailers;
}

public class Trailer{
    public int ID;
    public Language MyLanguage;
    public string someDifferentValue;
}

在我的Controller中,我将多个Header类型的对象移交给我的JavaScript代码。现在我想通过那些Header-Objects并获得满足几个条件的预告片。正如我发现的那样,有一个名为“grep”的JS / jQuery函数,类似于c#/ LINQ .Where()。

假设我想获得ID等于1的Header对象和英语中的对应预告片:

result = jQuery.grep(headerCollection, function(t){
    return jQuery.grep(t.Trailers, function(subT){
        return subT.Language == Language.English
    } && t.ID == 1
}

所以如果我说得对,结果[0]应该是我的Header-object和结果[0] .Trailers [0]应该是我对应的英语预告片。

但正如预期的那样,它不起作用,我无法弄清楚原因。有没有更好的方法让这个工作?

2 个答案:

答案 0 :(得分:1)

jQuery.grep()返回一个数组,这总是很简单。

因此,在回调中调用grep实际上没有任何意义。

相反,您应该调用数组上的内置some() method,这样可以满足您的需要。

答案 1 :(得分:0)

缺少括号:

result = jQuery.grep(headerCollection, function(t){
    return jQuery.grep(t.Trailers, function(subT){
        return subT.Language == Language.English
    }) && t.ID == 1
})