Как получить определенный объект из массива объектов?
Всем привет! Так как я не силен в 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, время: 23:09. |