我有数组对象
users[{object1}; {object2}, {object3}];
其中每个对象都具有以下属性
object.userId
object.userName
object.email
当我点击表示每个对象的跨度时,我试图获取特定对象。
例如: - 当我点击span.id= 1
时,我试图从具有userid == 1
我试过了,jquery .eq(), grep() , get()
但似乎没什么用。
答案 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。