Remove Every Other Array Element in JavaScript

- 1 minute read

Consider the following array:

let array = [`good`, `bad`, `good`, `bad`];

Let’s imagine we wanted to remove every other element from this array. Here’s a snippet that will do just that, thanks to splicing:

let i = array.length;

while (i--) (i + 1) % 2 === 0 && (array.splice(i, 1));

After the above snippet has executed, array will equal ["good", "good"], as expected.

If you needed to, you could alternatively start counting earlier and begin by removing the first element:

let i = array.length;

while (i--) i % 2 === 0 && (array.splice(i, 1));

Once the above snippet has executed, array will equal ["bad", "bad"].

Link to this section Remove every nth array element

We can also apply this strategy in a similar way to remove every nth element from an array:

let i = array.length;
let n = 5; // The "nth" element to remove

while (i--) (i + 1) % n === 0 && (array.splice(i, 1));

The above snippet will remove every fifth element from array, but you can substitute any other natural number for n.

Link to this section Conclusion

There’s lots of handy little tricks for manipulating JavaScript arrays that I have saved, including this one. They certainly come in handy!

Thanks for reading.