Confusion with javascript array.splice()

I’m really confused about this.

My understanding was that array.splice(startIndex, deleteLength, insertThing) would insert insertThing into the result of splice() at startIndex and delete deleteLength‘s worth of entries? … so:

var a = [1,2,3,4,5];
var b = a.splice(1, 0, 'foo');

Should give me:



console.log([1,2,3,4,5].splice(2, 0, 'foo'));

should give me



But for some reason it’s giving me just an empty array? Take a look:

Thanks 🙂


The “splice()” function returns not the affected array, but the array of removed elements. If you remove nothing, the result array is empty.