Получение n-го элемента объекта массива jquery

У меня есть объект массива

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

где каждый объект имеет атрибуты ниже

object.userId
object.userName
object.email

Я пытаюсь получить конкретный объект, когда я нажимаю на span, который представляет каждый объект.

Например: - когда я нажимаю на span.id= 1, я пытаюсь получить объект из массива с userid == 1

Я попытался, jquery.eq(), grep(), get() но ничего не работает.

4 ответа

Вы можете использовать $.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);


вам придется перебирать каждый объект, чтобы найти его.

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

здесь код js скрипки.

Но для того, чтобы быть более эффективным, вы должны использовать карту, как предположил Кейт.


Объекты в Javascript - это, по сути, словарь, поэтому, если вы делаете много поисков, вы можете использовать это:

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

Тогда вы можете сделать:

var user1 = users[span.id];

Кроме того, вам нужно запустить цикл for через массив, пока не найдете объект, где .userId == span.id


Вы можете использовать функцию jquery grep:

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

licensed under cc by-sa 3.0 with attribution.