2011-09-08 65 views
0

我的問題基於和類似於this one但稍有不同,因爲屬性名稱是可變的。函數從具有提供屬性的某個值的對象數組中獲取索引

如何創建一個函數,它將返回具有給定屬性的某個值的對象的索引?

function indexOf(propertyName,lookingForValue,array){ 
//...... 

return index; 
} 

所以,

indexOf("token",123123,[ 
    {id_list:1, name:'Nick',token:'312312'},{id_list:2,name:'John',token:'123123'} 
    ]); 

應該返回1.

我主要的問題是我如何檢查的屬性值時,我有屬性名作爲字符串和我在一起?

回答

3
function indexOf(propertyName,lookingForValue,array) { 
    for (var i in array) { 
     if (array[i][propertyName] == lookingForValue) { 
      return i; 
     } 
    } 
    return undefined; 
} 

編輯:請注意,我做的鬆散型檢查「==」的目的,因爲你是在陣列中給予了該功能的整數,而你搜索的值是一個字符串。

+0

是的,我只需要寬鬆的類型檢查。 – IsmailS

1

我做了一個可以幫助你的功能。覈實。

function GetindexOf(propertyName,lookingForValue,array){ 
var obj = array; 
for(o in obj) 
{ 
    if(obj[o][propertyName] == lookingForValue) 
    { 
     //return index; 
     alert("You have request for "+o+" index"); 
    } 
} 
} 
相關問題