| 
	| 
	
	| 
		
	| 
			
			 
			
				19.10.2023, 15:31
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 11.03.2013 
						Сообщений: 792
					 
		
 |  |  
	| 
				Фильтр массива
			 Привет Массив 
fromStorage =[{
    "day": "2",
    "month": "9"
}, {
    "day": "9",
    "month": "9"
}, {
    "day": "16",
    "month": "9"
}, {
    "day": "5",
    "month": "10"
}, {
    "day": "12",
    "month": "10"
}, {
    "day": "19",
    "month": "10"
}]
 Я кликаю по элементу, который имеет соответствующие дата атрибуты. Мне нужно удалить соответствующий объект из массива.
 
...
<div data-day="16" data-month="9">16</div>
...
 
 Если я делаю так
 
let filtered = fromStorage.filter(o => {
            return (o.day !== e.dataset.day && o.month == e.dataset.month)
          });
то у меня в массиве остаётся только два объекта. Так как удаляется тот, который я кликнул и те у которых не тот месяц. Как правильно сделать? |  |  
	| 
		
	| 
			
			 
			
				19.10.2023, 15:48
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 03.02.2020 
						Сообщений: 2,777
					 
		
 |  |  
	| 
let filtered = fromStorage.filter(o => {
            return !(o.day === e.dataset.day && o.month === e.dataset.month)
          });
 |  |  
	| 
		
	| 
			
			 
			
				19.10.2023, 15:53
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 11.03.2013 
						Сообщений: 792
					 
		
 |  |  
	| Да нет. Так вообще остаётся только тот по которому кликнул. А надо наобород его исключить. |  |  
	| 
		
	| 
			
			 
			
				19.10.2023, 15:57
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 11.03.2013 
						Сообщений: 792
					 
		
 |  |  
	| Всё, нашёл) 
let filtered = fromStorage.filter(o => {
            return (o.day !== e.dataset.day && e.dataset.month)
          });
 |  |  
	| 
		
	| 
			
			 
			
				19.10.2023, 16:08
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 03.02.2020 
						Сообщений: 2,777
					 
		
 |  |  
	| 
	
 
	| Сообщение от ureech |  
	| Да нет. Так вообще остаётся только тот по которому кликнул. А надо наобород его исключить. |  
	
 Так удалится только тот, по которому кликнули
 
	
 
	| Сообщение от ureech |  
	| let filtered = fromStorage.filter(o => { return (o.day !== e.dataset.day && e.dataset.month)
 });
 |  
	
 А так удалятся все у которых day совпадает, не обращая внимания какой там month 
Буде еще один элемент
 
{
    "day": "16",
    "month": "10"
},
 и он тоже удалится. |  |  
	| 
		
	| 
			
			 
			
				19.10.2023, 16:19
			
			
			
		 |  
	| 
		
			
			| Профессор       |  | 
					Регистрация: 11.03.2013 
						Сообщений: 792
					 
		
 |  |  
	| Ну не знаю). У меня работает так, как я написал. |  |  
	| 
		
	| 
			
			 
			
				19.10.2023, 16:55
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 03.02.2020 
						Сообщений: 2,777
					 
		
 |  |  
	| 
	
 
	| Сообщение от ureech |  
	| У меня работает так, как я написал. |  
	
 Упрямство не есть хорошо
 
<body>
<div data-day="16" data-month="9">16</div>
<script>
const fromStorage =[{
    "day": "2",
    "month": "9"
}, {
    "day": "9",
    "month": "9"
}, {
    "day": "16",
    "month": "9"
}, {
    "day": "5",
    "month": "10"
}, {
    "day": "12",
    "month": "10"
}, {
    "day": "16",
    "month": "10"
}, {
    "day": "19",
    "month": "10"
}];
const e = document.querySelector('div');
e.addEventListener('click', () => {
	console.log(fromStorage.length);
	let filtered = fromStorage.filter(o => {
        return (o.day !== e.dataset.day && e.dataset.month);
    });
    console.log(filtered)
})
</script>
</body>
Сколько элементов удалилось? |  |  
	| 
		
	| 
			
			 
			
				19.10.2023, 16:58
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 03.02.2020 
						Сообщений: 2,777
					 
		
 |  |  
	| А так удаляется только тот, что нужен 
<body>
<div data-day="16" data-month="9">16</div>
<script>
const fromStorage =[{
    "day": "2",
    "month": "9"
}, {
    "day": "9",
    "month": "9"
}, {
    "day": "16",
    "month": "9"
}, {
    "day": "5",
    "month": "10"
}, {
    "day": "12",
    "month": "10"
}, {
    "day": "16",
    "month": "10"
}, {
    "day": "19",
    "month": "10"
}];
const e = document.querySelector('div');
e.addEventListener('click', () => {
	console.log(fromStorage.length);
	let filtered = fromStorage.filter(o => {
        return !(o.day === e.dataset.day && o.month === e.dataset.month)
    });
    console.log(filtered)
})
</script>
</body>
 |  |  
	| 
		
	| 
			
			 
			
				27.10.2023, 16:04
			
			
			
		 |  
	| 
		
			|  | Профессор       |  | 
					Регистрация: 30.04.2012 
						Сообщений: 3,018
					 
		
 |  |  
	| 
const index = fromStorage.findIndex((o) => {
  return o.day === e.dataset.day && o.month === e.dataset.month;
});
fromStorage.splice(index, 1);
console.log(fromStorage);
Но мутации - это плохо. |  |  |  |