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

234
Views
¿Cómo insertar un elemento eliminado en la posición original en la matriz?

En el siguiente código:

  1. Primero creo una matriz de 10 elementos.
  2. A continuación, elimino 3 elementos aleatorios de esa matriz.
  3. Intento agregar esos 3 elementos aleatorios en la matriz original en las posiciones originales.

Por algún motivo, en el paso 3 anterior (en el registro de la consola FINAL ARR ), los elementos se agregan en la posición incorrecta. ¿Mi función de corte es incorrecta en el paso 3? Si es así, ¿cómo lo modifico para que sea correcto?

 // Step 1. Create array of 10 elements const originalValues = maxAmount => { let finalArray = []; for (let i = 0; i < maxAmount; i++) { finalArray.push({ key1: `key1-${i+1}`, position: i }); } return finalArray; } let finalArr = originalValues(10); const finalArrOriginalLength = finalArr.length; //Step 2. Remove 3 random elements in this case key1-2, key1-7, key1-8 const removedElements = []; finalArr = finalArr.filter(elem => { if (elem.key1 === 'key1-7' || elem.key1 === 'key1-2' || elem.key1 === 'key1-8') { removedElements.push(elem); return false; } else { return true; } }); /* Step 3. Add those 3 elements back to the original positions */ removedElements.forEach(elem => { finalArr.splice(elem.position - (finalArrOriginalLength - finalArr.length) + 1, 0, elem); }); /* The inserted elements from step 3 are being inserted in the wrong position as seen when this console.log prints out finalArr */ console.log('FINAL ARR', finalArr);

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

0

No hay necesidad de restar de elem.position .

Si ordena los elementos eliminados por las posiciones originales, debería poder insertarlos en esas posiciones.

Esto supone que no ha habido ningún otro cambio en la matriz.

 // Step 1. Create array of 10 elements const originalValues = maxAmount => { let finalArray = []; for (let i = 0; i < maxAmount; i++) { finalArray.push({ key1: `key1-${i+1}`, position: i }); } return finalArray; } let finalArr = originalValues(10); const finalArrOriginalLength = finalArr.length; //Step 2. Remove 3 random elements in this case key1-2, key1-7, key1-8 const removedElements = []; finalArr = finalArr.filter(elem => { if (elem.key1 === 'key1-7' || elem.key1 === 'key1-2' || elem.key1 === 'key1-8') { removedElements.push(elem); return false; } else { return true; } }); /* Step 3. Add those 3 elements back to the original positions */ removedElements.sort((a, b) => a.position - b.position).forEach(elem => { finalArr.splice(elem.position, 0, elem); }); console.log('FINAL ARR', finalArr);

about 4 years ago · Juan Pablo Isaza Report

0

Prueba esto...

 // Step 1. Create array of 10 elements const originalValues = maxAmount => { let finalArray = []; for (let i = 0; i < maxAmount; i++) { finalArray.push({ key1: `key1-${i+1}`, position: i }); } return finalArray; } let finalArr = originalValues(10); const finalArrOriginalLength = finalArr.length; //Step 2. Remove 3 random elements in this case key1-2, key1-7, key1-8 const removedElements = []; finalArr = finalArr.filter(elem => { if (elem.key1 === 'key1-7' || elem.key1 === 'key1-2' || elem.key1 === 'key1-8') { removedElements.push(elem); return false; } else { return true; } }); // Step 3. Add those 3 elements back to the original positions removedElements .sort((a,b)=>{return a.position > b.position ? 0 : 1 }); removedElements.forEach(elem => { finalArr.splice(elem.position, 0, elem); }); /* The inserted elements from step 3 are being inserted in the wrong position as seen when this console.log prints out finalArr */ console.log('FINAL ARR', finalArr);

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!