获取jquery数组对象的第n项

时间:2013-11-25 10:38:16

标签: javascript jquery arrays

我有数组对象

users[{object1}; {object2}, {object3}];

其中每个对象都具有以下属性

object.userId
object.userName
object.email

当我点击表示每个对象的跨度时,我试图获取特定对象。

例如: - 当我点击span.id= 1时,我试图从具有userid == 1

的数组中获取对象

我试过了,jquery .eq(), grep() , get()但似乎没什么用。

4 个答案:

答案 0 :(得分:3)

您可以使用$.grep()

var lis = [{'id':1, 'name':"honke"}, {'id':2, 'name':"hinke"}];
var found = $.grep(lis, function(el) {
  return el.id === 1;
});
alert(found[0].id);

答案 1 :(得分:0)

Javascript中的对象本质上是一个字典,所以如果你进行大量的查找,你可以使用它:

var users = { 1: {object1}, 2: {object2},: 3: {object2}};

然后你可以这样做:

var user1 = users[span.id];

或者,您需要在数组中运行for循环,直到找到.userId == span.id

的对象为止

答案 2 :(得分:0)

您可以使用jquery grep函数:

var result = jQuery.grep(obj, function( obj, i ) {
    return ( obj.userId == 1 );
});

答案 3 :(得分:0)

你必须遍历每个对象才能找到它。

for(var user in users){
    if(users[user].userId == 1){
        console.log(users[user]);
        return users[user];
    }
}

这里是js fiddle code

但为了提高效率,你应该use a map as keith has suggested