2015-04-10 5 views
-3

Как получить идентификатор из массива объекта {идентификатор, имя пользователя, адрес электронной почты}, у меня есть имя пользователя в качестве строки, и мне нужно идентификатор из объекта, который имеет что имяКак искать объект в массивах

ответ

0

Нет необходимости в каких-либо фреймворках - просто используйте метод javascript filter.

var elSearch = document.getElementById('searchName'); 
 
var elResultDisplay = document.getElementById('result'); 
 

 
var search = function() { 
 
    // username to search for 
 
    var searchName = elSearch.value; 
 
    var hitId; 
 

 
    var users = [ 
 
     {id: 1, username: 'ted', email: '[email protected]'}, 
 
     {id: 2, username: 'robin', email: '[email protected]'}, 
 
     {id: 3, username: 'barney', email: '[email protected]'} 
 
    ]; 
 

 
    // filter will return an array with matching items 
 
    var hit = users.filter(function (user) { 
 
     return user.username === searchName; 
 
    }); 
 

 
    // check if there an item matched the search expression 
 
    if (hit.length) { 
 
     hitId = hit[0].id; 
 
     elResultDisplay.innerHTML = hitId; 
 
    } else { 
 
     elResultDisplay.innerHTML = 'no match'; 
 
    } 
 
};
<pre> 
 
    var users = [ 
 
     {id: 1, username: 'ted', email: '[email protected]'}, 
 
     {id: 2, username: 'robin', email: '[email protected]'}, 
 
     {id: 3, username: 'barney', email: '[email protected]'} 
 
    ]; 
 
</pre> 
 

 
<input id="searchName" type="text" /> 
 
<button onclick="search()">Search</button> 
 

 
<p id="result"></p>

-1

Вы можете просто использовать underscore.js, я предполагаю, что вы используете javascript.

_.findWhere(array, {username: "Velijko"}); 

Это даст вам весь объект, вы можете просто получить идентификатор. Если вы используете Java, вы можете создавать похожие материалы с библиотеками Guava.

0

Если вы используете JQuery ...

Реферирование ссылке:

Find object by id in an array of JavaScript objects

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

var result = $.grep(myArray, function(e){ return e.username == username; }); 

console.log(result.id); 

Вы можете заменить туАггау с массивом объектов.

result.id должен предоставить вам идентификатор объекта, который вы ищете.

Смежные вопросы