-1

別のプロパティの値から 1 つのオブジェクト プロパティを取得する方法はありますか

たとえば、(SQLで) object.name ="somename"のオブジェクトからIDを取得しますか?

そのオブジェクトの ID を取得する必要がありますが、名前しか知りません。

4

3 に答える 3

2

そうでなければ意味がないので、オブジェクトの配列でこれを行おうとしていると仮定します。

必要なブラウザー サポートに応じて、 on と呼ばれるメソッドがありfilterますArray.prototype。必要に応じて、それをシムすることもできます。

コードは次のようになります。

var list = ​[
    {id:1, name:'bob'},
    {id:2, name:'jim'},
    {id:3, name:'sam'},
    {id:4, name:'tim'}
];

var sams = list.filter(function(obj){
    return obj.name == 'sam';
});

console.log(sams[0].id);

ここに jsfiddle リンクがあります: http://jsfiddle.net/g8rTA/

于 2012-07-10T07:00:49.590 に答える
0

この関数を使用して取得できます。

function getObjectByAttribute(list, attr, val){
    var result = null;
    $.each(list, function(index, item){
        if(item[attr].toString() == val.toString()){
           result = item;
           return false;
        }
    });
    return result;
}

var obj = getObjectByAttribute(yourList, 'name', 'somename');
if(obj) console.log(obj.id);

編集:

@nnnnnnが示唆したように、jQuery以外の代替手段は次のとおりです。

function getObjectByAttribut(list, attr, val){
    var result = null;
    for(var ind in list){
        if(list[ind][attr] == val) return list[ind];
    }
    return null;
}
于 2012-07-10T06:32:07.147 に答える
0

あなたの質問は私には明確ではありませんが、私はこの行に答えています。

別のプロパティの値から 1 つのオブジェクト プロパティを取得する方法はありますか。

var obj = {
   'name' : 'ramesh',
   'surname' : 'suresh'
}

var obj2 = {
   'props' : 'name',
   'method' : 'blah'
}


for(var i in obj){
   if(obj.hasOwnProperty(i)){
      if(i === obj2['props']){
         console.log('Found ' + i);    // This will find 'name'
         break; 
      }

   }
}
于 2012-07-10T07:02:58.900 に答える