Search code examples
javascriptvariable-assignmentsplice

Why am I getting this output from this simple splice command?


I have a small issue with understanding why I'm getting this output.

var arr = ["a", "b", "c", "d", "e", "f"];
arr.splice(2,0,"1");
console.log(arr);  

var arr2 = ["a", "b", "c", "d", "e", "f"];
arr2 = arr2.splice(2,0,"2");
console.log(arr2);

ouput is:

[ 'a', 'b', '1', 'c', 'd', 'e', 'f' ]
[]  

Why is the second line of output not:

[ 'a', 'b', '2', 'c', 'd', 'e', 'f' ]  

Is it an issue of assignment or what?


Solution

  • Reading about splice method. It returns

    An array containing the removed elements. If only one element is removed, an array of one element is returned.

    So by doing

    arr2 = arr2.splice(2,0,"2");
    

    you overwrite initial array arr with empty array [] returned by splice.