Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

157
Views
¿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?

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

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);

about 4 years ago · Juan Pablo Isaza Report

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([]) );

about 4 years ago · Juan Pablo Isaza Report

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; }

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!