获取其子属性包含值的对象
本文关键字:对象 包含值 属性 获取 | 更新日期: 2023-09-27 18:32:45
Models:
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;
}
在我的控制器中,我将多个类型为 Header 的对象移交给我的 JavaScript 代码。现在我想浏览这些标头对象并获取满足多个条件的预告片。正如我已经发现的那样,有一个名为"grep"的JS/jQuery函数,其使用方式类似于c#/LINQ。其中()。
假设我想获取 ID 等于 1 的标头对象和英语中的相应预告片:
result = jQuery.grep(headerCollection, function(t){
return jQuery.grep(t.Trailers, function(subT){
return subT.Language == Language.English
} && t.ID == 1
}
所以如果我做对了,结果[0]应该是我的标头对象和结果[0]。预告片[0]应该是我对应的英语预告片。
但正如预期的那样,它不起作用,我不知道为什么。有没有更好的方法来让它工作?
jQuery.grep()
返回一个数组,该数组始终是真实的。
因此,在回调中调用grep
实际上没有任何意义。
相反,您应该在数组上调用内置的 some()
方法,该方法执行您实际想要的操作。
缺少括号:
result = jQuery.grep(headerCollection, function(t){
return jQuery.grep(t.Trailers, function(subT){
return subT.Language == Language.English
}) && t.ID == 1
})