別のプロパティの値から 1 つのオブジェクト プロパティを取得する方法はありますか
たとえば、(SQLで) object.name ="somename"のオブジェクトからIDを取得しますか?
そのオブジェクトの ID を取得する必要がありますが、名前しか知りません。
別のプロパティの値から 1 つのオブジェクト プロパティを取得する方法はありますか
たとえば、(SQLで) object.name ="somename"のオブジェクトからIDを取得しますか?
そのオブジェクトの ID を取得する必要がありますが、名前しか知りません。
そうでなければ意味がないので、オブジェクトの配列でこれを行おうとしていると仮定します。
必要なブラウザー サポートに応じて、 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/
この関数を使用して取得できます。
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;
}
あなたの質問は私には明確ではありませんが、私はこの行に答えています。
別のプロパティの値から 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;
}
}
}