Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.02.2018, 16:34
Новичок на форуме
Отправить личное сообщение для Rmydar Посмотреть профиль Найти все сообщения от Rmydar
 
Регистрация: 04.02.2018
Сообщений: 4

Как получить определенный объект из массива объектов?
Всем привет! Так как я не силен в javascript нужна ваша помощь. Не подскажите как получить объект из массива объектов по одному из его свойств?
Ответить с цитированием
  #2 (permalink)  
Старый 04.02.2018, 16:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,084

Rmydar,
https://javascript.ru/forum/misc/724...tml#post476834
Ответить с цитированием
  #3 (permalink)  
Старый 04.02.2018, 17:09
Новичок на форуме
Отправить личное сообщение для Rmydar Посмотреть профиль Найти все сообщения от Rmydar
 
Регистрация: 04.02.2018
Сообщений: 4

Прикольно только как это мне поможет? У меня есть массив объектов, каждый объект имеет свойство 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, ну может кто подскажет что я делаю не так?
Ответить с цитированием
  #4 (permalink)  
Старый 04.02.2018, 17:30
Новичок на форуме
Отправить личное сообщение для KonstBessonov Посмотреть профиль Найти все сообщения от KonstBessonov
 
Регистрация: 18.01.2018
Сообщений: 7

В твоем случае нужно после найденного совпадения делать 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);
Ответить с цитированием
  #5 (permalink)  
Старый 04.02.2018, 18:09
Новичок на форуме
Отправить личное сообщение для Rmydar Посмотреть профиль Найти все сообщения от Rmydar
 
Регистрация: 04.02.2018
Сообщений: 4

Странно но не выходит не так не так… При этом если в консоль вывести один объект, и значение переменной id, то и значение свойства id объекта, и значение переменой id равны, но результат сравнения дает ложь. Скажите пожалуйста javascript сильно типизированный язык, так как значение переменной id я получаю из тега, и если я правильно понимаю оно имеет строковое значение, значение в массиве числовое, в этом может быть проблема?
Ответить с цитированием
  #6 (permalink)  
Старый 04.02.2018, 18:16
Новичок на форуме
Отправить личное сообщение для Rmydar Посмотреть профиль Найти все сообщения от Rmydar
 
Регистрация: 04.02.2018
Сообщений: 4

Блин оператор, ну как же так я лоханулся, всю голову сломал, Сори ребят что отнял у вас время...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить ссылку на объект, содержащий DataURL? ssadfaf Общие вопросы Javascript 0 19.01.2015 11:20
Проблема с наполнением массива объектов - последний элемент заменяет собой все... Джангар AJAX и COMET 5 18.12.2014 22:54
Как найти точки соприкосновения двух объектов в RaphaelJS Fatalityap Библиотеки/Тулкиты/Фреймворки 3 03.08.2012 16:33
Как получить значения вышестоящих элементов дерева TreeStore ? Allan Stark ExtJS 1 31.07.2012 16:48
Массив объектов или объект объектов vladlen Общие вопросы Javascript 19 30.10.2010 03:10