使用jQuery搜索javascript对象列表的最简单方法?

使用jQuery搜索javascript对象列表的最简单方法?,javascript,jquery,Javascript,Jquery,使用jQuery搜索javascript对象列表的最简单方法是什么 例如,我定义了以下js配置块: var ProgramExclusiveSections = { "Rows": [ { 'ProgramId': '3', 'RowId': 'trSpecialHeader'}, { 'ProgramId': '3', 'RowId': 'trSpecialRow1' }, { 'ProgramId': '3', 'RowId': 'trSpec

使用jQuery搜索javascript对象列表的最简单方法是什么

例如,我定义了以下js配置块:

var ProgramExclusiveSections =
{
   "Rows":
   [
      { 'ProgramId': '3', 'RowId': 'trSpecialHeader'},
      { 'ProgramId': '3', 'RowId': 'trSpecialRow1' },
      { 'ProgramId': '3', 'RowId': 'trSpecialRow2' },
      { 'ProgramId': '1', 'RowId': 'trOtherInfo' }
   ]
} 
用户选择了Program ID=3,因此我只想获取我在这个js config对象中为Program ID=3配置的“行”。这将获得javascript对象列表:

var rows = ProgramExclusiveSections.Rows
但我需要将其过滤到RowId=3的位置。使用jquery最简单的方法是什么?

可以(尽管
$.grep()
更优雅)


这将返回一个带有
RowId
“3”的对象数组(注意,您有一个字符串而不是一个数字)。

@Matt-为什么需要这样做?噢!你说得对,我想的是
.map()
,而不是
$.map()
var matches = $.grep(rows, function (elt)
{
    return elt.ProgramId === '3';
});
var objs= $.map(ProgramExclusiveSections.Rows, function(obj, index) {
    return obj.RowId === "3"? obj : null;
});