I wasn't able to find an exact solution or if it is even possible.
I have an example array and I wont be using the first two values, and I wanted to transform those strings to numbers with Number() and using the spread operator to convert each value in one go.
let array = ['1','2','3','4','5','6']
let result = Number(...array.splice(2));
the result of this is 3 is there a way to use the spread operator? or the only way out of this is to use map.
The expected result is result = [3,4,5,6] so only numbers. The array of strings is just an example, it might have more strings inside or less.
One possible solution is slice the array (to remove the two first elements) and then map, transform the numbers from string to number:
let array = ['1','2','3','4','5','6']
let result = array.slice(2, array.length)
let numbers = result.map(el=>Number(el))
console.log(numbers)
You can choose to use splice, but you don't want the result. You just want to run that to remove the first 2 values. Then map the remaining values to an array of numbers and you're good.
let array = ['1','2','3','4','5','6'];
array.splice(0, 2); // splice will remove indexes 0 and 1
let result = array.map(n => +(n)); // map the remaining values to numbers
console.log(result);
The Number constructor converts one value to a number - Number(value)
You're putting in as value a spreaded array from which the first value is taken and converted
Number(...array.splice(2)) // Number('3','4','5','6') => 3
I don't see any good example using the spread operator, since you don't want to get rid of the array structure, but have to iterate the array for converting each element from string to number
let array = ['1','2','3','4','5','6']
let numbers1 = array.slice(2).map(str => +str) // [3, 4, 5, 6]
let numbers2 = array.slice(2).map(str => Number(str)) // [3, 4, 5, 6]