JavaScript has two similar array methods: splice()
and toSpliced()
. But they behave differently! Let’s break it down.
How to understand which method to use when?
using toSpliced()
– Returns a New Array (Immutable)
const toSplicedResponse =[1,2,3,4];
toSplicedResponse.toSpliced(0,1);
console.log("toSplicedResponse",toSplicedResponse)
toSplicedResponse: [2,3,4]
- Works like splice() only but doesn't mutate
toSplicedResponse
array. - Returns a new array (immutable approach)
using splice()
– Mutates the Original Array
You need to use spread operator in order to avoid mutating existing array.
const data =[1,2,3,4];
const splicedResponse = [...data];
splicedResponse.toSpliced(0,1);
console.log("splicedResponse",splicedResponse)
console.log("data",data)
splicedResponse: [2,3,4]
data: [1,2,3,4]
If you don't use spread operator, it will cause data manipulation of actual state.
const data =[1,2,3,4];
data.toSpliced(0,1);
console.log("data",data);
data: [2,3,4]
data
is now manipulated and we can't go back.
- Removes 1 element starting at index 0
- Modifies the original array!
📌 Use splice() when you need to modify an array in place.
📌 Use toSpliced() when you prefer immutability (React, functional programming).
Which one do you use more? Let’s discuss! 🙋♀️