Escriba la función popAndShift(). La función primero tiene que imprimir el contenido de los arreglos arreglo1 y arreglo2. Después de esto, los elementos de array2 se eliminarán, alternando entre los métodos .pop() y .shift() (comenzando con .pop()), mientras se agregan los valores eliminados al final de array1. Finalmente, se imprimirá el contenido de array1.
¡Nota! La prueba automática se encarga de asignar valores a las matrices.
código a continuación
var array1 =["first", "second", "kukka", "kakka"] var array2 =["fourth", "fift", "rukka", "nukka", "sukka"] function popandshift(){ console.log("First array: " + array1) console.log("Second array: " + array2) let i = 0; uusi = array2.length; while (i < uusi) { i++; const lastNumber = array2.pop() array1.push(lastNumber) const otherNumber = array2.shift() array1.push(otherNumber) if (array2.length === 0){ break} } console.log("Resulting array: " + array1); } popandshift()por alguna razón. Esto funciona según lo previsto, pero mi programa agrega una coma (,) después del último elemento de la matriz, ¿por qué?
Estás viendo el resultado de empujar null a array1
let arr = ['a','b'] arr.push(null) console.log("comma at the end:"+arr," length of the array",arr.length);Ese es el resultado de usar un contador para extraer dos valores de la matriz además de tener una matriz con un número impar de elementos. Su código ligeramente reelaborado:
var array1 =["first", "second", "kukka", "kakka"] var array2 =["fourth", "fift", "rukka", "nukka", "sukka"] function popandshift(){ console.log("First array: " + array1) console.log("Second array: " + array2) let i = 0; uusi = array2.length; while (i < uusi) { i++; const lastNumber = (i%2==0)?array2.shift():array2.pop() array1.push(lastNumber) if (array2.length === 0){ break} } console.log("Resulting array: " + array1); } popandshift()Aunque es posible que desee refactorizarlo un poco (declarando const fuera del bucle, pensando en otra forma de salir del bucle). La forma en que funciona, sin embargo.