glem1337
@glem1337

Как найти и заменить значение в массиве, если элемент массива является объектом?

Есть массив такого вида:
0: {column: "campaign", state: true, name: "Кампания "}
1: {column: "state", state: true, name: "Состояние"}
2: {column: "position_indicator", state: true, name: "Клики по позициям за вчерашний день														"}
3: {column: "campaign_ads_regions", state: false, name: "Регионы показов"}

На его основании строится html список, для переключения состояния показа столбца.

При изменении состояния чекбокса, нужно что бы в массиве изменялось состояние "state" у соответствующего элемента.
Я понимаю как это сделать, если бы это был объект, но как с массивом быть — не могу понять!

$('input[type=checkbox]', this.window).on('change', function() { // обработчик изменения состояния
		$this.columns = $.cookie('columns_filter'); // тянем повторно список столбцов для отображения
		$this.columns[$(this).val()] = $(this).prop('checked');
		$this.repaint();
		$.cookie('columns_filter', $this.columns, {expires: 7});
	});
  • Вопрос задан
  • 263 просмотра
Пригласить эксперта
Ответы на вопрос 2
DeLaVega
@DeLaVega
Верстаю, фронтэндю =)
Запрос "find object in array js" в гугле, даст море вариантов решения...

Используйте метод find и будет счастье.
Ответ написан
Комментировать
Может быть так?
your_array.filter(array_item => array_item.column === 'campaign')[0].state = false
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы