2013-09-24 87 views
0

我有一個包含對象的數組。這些對象有一個屬性名稱。 我想要的屬性等於巴特對象的索引。我怎樣才能找到那個對象的索引?jquery獲取對象的索引,其中字段等於值

+0

HTTP ://stackoverflow.com/questions/8668174/indexof-method-in-an-object-array – mitchfuku

+0

有沒有別的選擇,而不是寫一個循環? –

+2

如果他們實際上是一個元素下的HTML元素,你可以做'index = $('#parentobject')。index('[property ='bart']')' –

回答

0

如果他們實際上是一個單一的元素下的HTML元素,你可以做

index = $('#parentobject').index('[property="bart"]') 
0

事情是這樣的:

for (var key in myobject) 
{ 
    console.log(key); 
} 
+0

for或foreach是? – Neel

0
var matches = jQuery.grep(array, function() { 
    // this is a reference to the element in the array 
    // you can do any test on it you want 
    // return true if you want it to be in the resulting matches array 
    // return false if you don't want it to be in the resulting matches array 

    // for example: to find objects with the Amount property set to a certain value 
    return(this.Amount === 100); 
}); 
1
var data = [{ name: 'bart' }, { name: 'baz' }]; 

function getPropIndexByName(data, prop, str){ 

    var ret = []; //updated to handle multiple indexes 

    $.each(data, function(k, v){ 
     if(v[prop] === str) 
      ret.push(k); 
    }); 

    return ret.length ? ret : null; 
} 

var result = getPropIndexByName(data, //data source 
           'name', //property name 
           'bart'); //property value 

console.log(result); 

http://jsfiddle.net/Le72k/1/

0

如果您有:

var myArray = [{x: 1}, {x: 2}, {x: 3}]; 

爲了得到第一個對象的索引,其中,x === 2我會d ○:

function indexOfFirstMatch (arr, condition) { 
    var i = 0; 

    for(;i < arr.length; i++) { 
     if(condition(arr[i])) { 
      return i; 
     } 
    } 
    return undefined; 
} 

var index = indexOfFirstMatch(myArray, function (item) { return item.x === 2; }); 
// => 1 

如果你想成爲一個真正的特立獨行,你可以擴展陣列:

Array.prototype.indexOfFirstMatch = function indexOfFirstMatch (condition) { 
    var i = 0; 

    for(;i < this.length; i++) { 
     if(condition(this[i])) { 
      return i; 
     } 
    } 
    return undefined; 
} 

var index = myArray.indexOfFirstMatch(function (item) { return item.x === 2; }); 
// => 1 
相關問題