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

时间:2011-08-03 17:09:04

标签: javascript jquery

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

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

var ProgramExclusiveSections =
{
   "Rows":
   [
      { 'ProgramId': '3', 'RowId': 'trSpecialHeader'},
      { 'ProgramId': '3', 'RowId': 'trSpecialRow1' },
      { 'ProgramId': '3', 'RowId': 'trSpecialRow2' },
      { 'ProgramId': '1', 'RowId': 'trOtherInfo' }
   ]
} 

用户选择了程序ID = 3,所以我只想获得我在此js配置对象中为程序ID = 3配置的“行”。这将获得javascript对象列表:

var rows = ProgramExclusiveSections.Rows

但是我需要将其过滤到只有RowId = 3的地方。用jquery做这个的最简单方法是什么?

2 个答案:

答案 0 :(得分:7)

$.grep()

var matches = $.grep(rows, function (elt)
{
    return elt.ProgramId === '3';
});

答案 1 :(得分:0)

$.map()会这样做(虽然$.grep()更优雅)。

var objs= $.map(ProgramExclusiveSections.Rows, function(obj, index) {
    return obj.RowId === "3"? obj : null;
});

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