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