Как получить определенный объект из массива объектов?
Всем привет! Так как я не силен в javascript нужна ваша помощь. Не подскажите как получить объект из массива объектов по одному из его свойств?
|
|
Прикольно только как это мне поможет? У меня есть массив объектов, каждый объект имеет свойство id со своим значением, мне нужно получить объект с нужным мне id из этого массива. Пробовал циклом не выходит:
for (var i=0, iLen=arr.length; i<iLen; i++) { if (arr[i].id === id) { object = arr[i]; } else { object = "Value not found"; } } console.log(object); У меня всегда "Value not found", я не силен в javascript, ну может кто подскажет что я делаю не так? |
В твоем случае нужно после найденного совпадения делать break.
var object = "Value not found"; for (var i=0, iLen=arr.length; i<iLen; i++) { if (arr[i].id === id) { object = arr[i]; break; // <---- } } console.log(object); Ну лучше использовать find из массива https://developer.mozilla.org/en-US/...cts/Array/find var object = arr.find(function(elem) { return elem.id === id; } console.log(object); |
Странно но не выходит не так не так… При этом если в консоль вывести один объект, и значение переменной id, то и значение свойства id объекта, и значение переменой id равны, но результат сравнения дает ложь. Скажите пожалуйста javascript сильно типизированный язык, так как значение переменной id я получаю из тега, и если я правильно понимаю оно имеет строковое значение, значение в массиве числовое, в этом может быть проблема?
|
Блин оператор, ну как же так я лоханулся, всю голову сломал, Сори ребят что отнял у вас время...
|
Часовой пояс GMT +3, время: 15:49. |