用于从具有特定提供属性值的对象数组中获取索引的函数

时间:2011-09-08 10:03:11

标签: javascript jquery

我的问题基于this one并且类似于{{3}},但有点不同,因为属性名称将是可变的。

如何创建一个函数,它将返回具有特定属性值的对象的索引?

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.

我遇到的主要问题是,当我将属性名称作为字符串时,如何检查属性值?

2 个答案:

答案 0 :(得分:3)

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

编辑:请注意我是故意进行宽松类型检查'==',因为你给这个函数一个整数,而在数组中你搜索的值是一个字符串。

答案 1 :(得分: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");
   }
 }
}