2011-09-08 67 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"); 
    } 
} 
} 
相关问题