0

私はオブジェクトの配列を持っています。コンストラクタは

Planet : function(planet)
{
    this.name = planet.name;
    this.percComp = planet.percComp;
    this.preReq = planet.preReq;
}

jquery またはアンダースコアを使用して、objects パラメータに基づいて配列からオブジェクトを取得する方法はありますか。

何かのようなもの

_getItem(planetArray, Planet.name === 'Mars')
4

3 に答える 3

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} ];

火星のオブジェクトを取得するには、次のようにします。_.where一致の配列を返すことに注意してください。インデックスへのアクセス0または使用_.firstが必要になります

var mars = _.where(listOfPlanets, {name: "Mars"})[0];
console.log(mars.prop);    // 4

Underscore にも_.findメソッドがあり、最初の一致のみを取得するために使用できます

var mars = _.find(listOfPlanets, function(p){ return p.name === 'Mars' });
console.log(mars.prop);    // 4

JSFiddleはこちら: http://jsfiddle.net/jaimem/6bxnK/1/

于 2012-11-18T00:16:41.740 に答える
2

これがjQueryのgrepメソッドの目的です。

var theObject = $.grep(planetArray, function (el) {
    return el.name === 'mars';
})[0];

これがフィドルです:http://jsfiddle.net/g7syV/

于 2012-11-18T00:12:15.403 に答える
1

grepを使用できます:

 $.grep(arr, function (obj) { return obj.name === 'Mars'; });

これにより、基準を満たすオブジェクトの配列が返されます。

于 2012-11-18T00:14:13.447 に答える