Показать сообщение отдельно
  #1 (permalink)  
Старый 13.12.2018, 12:31
Профессор
Отправить личное сообщение для Роман Андреевич Посмотреть профиль Найти все сообщения от Роман Андреевич
 
Регистрация: 12.08.2016
Сообщений: 299

Сравнить элементы массива 2
коллеги, доброго времени суток. опять ступор. Походу надо в отпуск.

Итак)))))))
Мне приходят объекты вида:

let ob = {
    id: ...
    data: ...
}


Все это добро упаковываю в массив searchArray. Не могу сделать фильтр для сравнения нового объекта с элементами массива:

let this.searchList = [];

	checkMatches(data) {

		if (this.searchList.length === 0 || data === null) {

			this.searchList.push(data);

		} else {

			this.searchList.forEach((item) => {

				if (item === null) return;
				if (item.id === data.id) return;

				this.searchList.push(data);

			});

		}

	}


null - это тоже результат от сервера, его нужно учитывать. Нужно добавлять объекты, только если data.id !== item.id, при наличии item.id.
По факту после 2 элемента в this.searchList добавляется по несколько элементов за раз.

please help!!!!! заранее благодарю
Ответить с цитированием