我的问题基于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.
我遇到的主要问题是,当我将属性名称作为字符串时,如何检查属性值?
答案 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");
}
}
}