• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

111
Vistas
¿Cuáles son las formas posibles de asignar el primer y el último elemento de una matriz, así como la matriz de elementos entre cada uno, a una variable separada?

digamos que tengo la siguiente matriz de datos

 ["New York", "Madrid", "Roma"]

Y tengo otras 2 variables y otra matriz

 firstValue = ''; middlesValues = [] lastValue = ''

producción

 firstValue = 'New York' middlesValues = ['Madrid'] lastValue = 'Roma'

Y me gustaría, por ejemplo, poner el primer valor en la matriz cada vez en una variable, los valores medios en una matriz y el último valor en la última variable. Y si tengo solo dos valores en la matriz, poner solo el primer valor y el último en las 2 variables.

¿Cómo puedo proceder?

almost 3 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Use array.slice para obtener el subarreglo, devuelve una matriz vacía si solo tiene 2 elementos.

 const array= ["New York", "Madrid", "Roma"]; const firstValue = array[0]; const middlesValues = array.slice(1, array.length - 1); const lastValue = array[array.length - 1]; console.log(firstValue); console.log(middlesValues); console.log(lastValue);

almost 3 years ago · Juan Pablo Isaza Denunciar

0

Use Array#shift para obtener el primer elemento, Array#pop para obtener el último y el resto serían los del medio:

 const partition = (arr = []) => { const array = [...arr]; const firstValue = array.shift(); const lastValue = array.pop(); const middlesValues = array; return { firstValue, middlesValues, lastValue}; } console.log( partition(["New York", "Madrid", "Boston", "Roma"]) ); console.log( partition(["New York", "Madrid", "Roma"]) ); console.log( partition(["New York", "Madrid"]) ); console.log( partition(["New York"]) ); console.log( partition([]) );

almost 3 years ago · Juan Pablo Isaza Denunciar

0

El enfoque depende de si el OP quiere que los datos originales sean mutados o no.

La forma más corta de no mutar es usar una combinación de desestructuración de matriz y pop ...

 let [firstValue, ...middlesValues] = array; let lastValue = middlesValues.pop();

posibles enfoques podrían ser...

 // - approach does not mutate the original data. // - it does so by using array destructuring and `pop`. let sampleData = ["New York", "Madrid", "Roma", "Paris"]; let [firstValue, ...middlesValues] = sampleData; let lastValue = middlesValues.pop(); console.log({ firstValue, lastValue, middlesValues, sampleData }); sampleData = ["New York", "Madrid"]; [firstValue, ...middlesValues] = sampleData; lastValue = middlesValues.pop(); console.log({ firstValue, lastValue, middlesValues, sampleData }); console.log('\n'); // - approach does not mutate the original data. // - it does so by uitlizing `at` and `slice`. sampleData = ["New York", "Madrid", "Roma", "Paris"]; firstValue = sampleData.at(0); lastValue = sampleData.at(-1); middlesValues = sampleData.slice(1, -1); console.log({ firstValue, lastValue, middlesValues, sampleData }); sampleData = ["New York", "Madrid"]; firstValue = sampleData.at(0); lastValue = sampleData.at(-1); middlesValues = sampleData.slice(1, -1); console.log({ firstValue, lastValue, middlesValues, sampleData }); console.log('\n'); // - approach does mutate the original data. // - it does so by by choosing the proven way of `shift` and `pop`. sampleData = ["New York", "Madrid", "Roma", "Paris"]; firstValue = sampleData.shift(); lastValue = sampleData.pop(); middlesValues = sampleData; console.log({ firstValue, lastValue, middlesValues, sampleData }); console.log( '(middlesValues === sampleData) ?..', (middlesValues === sampleData) ); sampleData = ["New York", "Madrid"]; firstValue = sampleData.shift(); lastValue = sampleData.pop(); middlesValues = sampleData; console.log({ firstValue, lastValue, middlesValues, sampleData }); console.log( '(middlesValues === sampleData) ?..', (middlesValues === sampleData) );
 .as-console-wrapper { min-height: 100%!important; top: 0; }

almost 3 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda