Array.prototype.splice and a schoolboy error.

The other day I posted about there being no 'delete an arbitrary element' method on Array in Javascrip. The problem being that I tried the solution I am about to present, but made the biggest School Boy Error possible – I didn't read the documentation correctly!

Whilst I maintain that my solution removes the need to first find the elements, and then delete them (which is better ;). It must be noted that Array.prototype.splice allows you to remove arbitrary elements if you know the index and the number of elements you want to remove.

Anyway, here goes, to remove 1 element from an Array from an arbitrary position:

var values = ["Ah", "hello", "world"];
var result = values.splice(1,1);
console.log(values);
console.log(result);

This removes the 'hello' from the values array in place and returns the elements removed. The result is values = ['Ah', 'world'] and result = ['hello']

Thanks to @dezfowler

Picture of me smiling.

Paul Kinlan

I lead the Chrome Developer Relations team at Google.

We want people to have the best experience possible on the web without having to install a native app or produce content in a walled garden.

Our team tries to make it easier for developers to build on the web by supporting every Chrome release, creating great content to support developers on web.dev, contributing to MDN, helping to improve browser compatibility, and some of the best developer tools like Lighthouse, Workbox, Squoosh to name just a few.

RSS Github Medium