No pude encontrar una solución exacta o si es posible. Tengo una matriz de ejemplo y no usaré los primeros dos valores, y quería transformar esas cadenas en números con Number() y usar el operador de propagación para convertir cada valor de una sola vez.
let array = ['1','2','3','4','5','6'] let result = Number(...array.splice(2));el resultado de esto es 3 ¿hay alguna manera de usar el operador de propagación? o la única forma de salir de esto es usar map.
El resultado esperado es result = [3,4,5,6] así que solo números. La matriz de cadenas es solo un ejemplo, puede tener más cadenas dentro o menos.
Una posible solución es cortar la matriz (para eliminar los dos primeros elementos) y luego mapear, transformar los números de cadena a número:
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)Puede elegir usar splice , pero no quiere el resultado. Solo desea ejecutar eso para eliminar los primeros 2 valores. Luego asigne los valores restantes a una matriz de números y estará bien.
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);El constructor Number convierte un valor en un número - Number(value)
Está poniendo como valor una matriz dispersa de la que se toma y convierte el primer valor
Number(...array.splice(2)) // Number('3','4','5','6') => 3No veo ningún buen ejemplo usando el operador de propagación, ya que no desea deshacerse de la estructura de la matriz, sino que tiene que iterar la matriz para convertir cada elemento de cadena a número.
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]