我有一个对象数组。
是构造函数Planet : function(planet)
{
this.name = planet.name;
this.percComp = planet.percComp;
this.preReq = planet.preReq;
}
是否有办法使用jquery或下划线从对象或对象中获取基于对象参数的数组。
像
这样的东西_getItem(planetArray, Planet.name === 'Mars')
答案 0 :(得分:2)
这是jQuery的grep
方法的用途:
var theObject = $.grep(planetArray, function (el) {
return el.name === 'mars';
})[0];
答案 1 :(得分:2)
尝试下划线的where
方法
_.where(listOfPlanets, {name: "Mars"});
假设您有以下行星列表 - prop
是一个弥补的属性
var listOfPlanets = [
{ name: 'Mercury', prop:1},
{ name: 'Venus', prop:2},
{ name: 'Earth', prop:3},
{ name: 'Mars', prop:4},
{ name: 'Jupiter', prop:5},
{ name: 'Saturn', prop:6},
{ name: 'Uranus', prop:7},
{ name: 'Neptune', prop:8} ];
要获取Mars对象,请执行以下操作。请记住_.where
会返回一系列匹配项。需要访问索引0
或使用_.first
var mars = _.where(listOfPlanets, {name: "Mars"})[0];
console.log(mars.prop); // 4
下划线还有_.find
方法,可用于仅检索第一场比赛
var mars = _.find(listOfPlanets, function(p){ return p.name === 'Mars' });
console.log(mars.prop); // 4
JSFiddle:http://jsfiddle.net/jaimem/6bxnK/1/
答案 2 :(得分:1)