const index = arr.findIndex(n => n.id === id);
if (index !== -1) {
arr.splice(index, 1);
}
const newArr = arr.filter(n => n.id !== id);
for (let i = arr.length; i--;) {
if (arr[i].id === id) {
for (let j = i; ++j < arr.length; arr[j - 1] = arr[j]) ;
arr.pop();
}
}
arr.reduceRight((_, n, i, a) => n.id === id && a.splice(i, 1), null);
arr.splice(0, arr.length, ...arr.filter(n => n.id !== id));
arr.length -= arr.reduce((acc, n, i, a) => (
a[i - acc] = n,
acc + (n.id === id)
), 0);
button:active {
color: yellow;
}
<!--Первый аккордеон-->
<ul accordion='test'>
<li><a href='1'>item1</a></li>
<li><a href='2'>item2</a></li>
</ul>
<div test='1' style='display:none;'>
####item1####
</div>
<div test='2' style='display:none;'>
####item2####
</div>
<!--Второй аккордеон-->
<ul accordion='test2'>
<li><a href='1'>item1!!!</a></li>
<li><a href='2'>item2!!!</a></li>
</ul>
<div test2='1' style='display:none;'>
####item1!!!####
</div>
<div test2='2' style='display:none;'>
####item2!!!####
</div>
$(document).on('click', "[accordion]", function(event){
event.preventDefault();
event.stopPropagation();
var target = event.target;
var check = $(this).attr('accordion');
$("["+check+"]").fadeOut(0);
$("["+check+"='"+$(target).attr('href')+"']").fadeIn(300);
});