¿Qué método se usa para eliminar un elemento de la array de JavaScript (cortar o eliminar)?

Podemos usar ambos métodos para eliminar un elemento de una array de JavaScript. La respuesta depende únicamente de la aplicación y del programador.

¿Qué método slice() hace?

El método slice, como sugiere su nombre, divide una array y devuelve una copia de la nueva array. Este método no afecta la array principal, solo devuelve la copia de la array. Podemos dar esta copia de la array a la array principal o a cualquier otra array para obtener la array dividida.

Sintaxis:

array.slice(arg1, arg2); 

Parámetro: Acepta los siguientes dos parámetros:

  • arg1: se refiere al índice de inicio desde el cual el método comenzará a cortar, el índice de inicio es inclusivo, lo que significa que si damos 0, comenzará con el índice 0.
  • arg2: Se refiere al índice final. Este índice final es exclusivo, lo que significa que no incluirá el índice dado en el corte

No es necesario dar ambos argumentos, si no proporcionamos el índice de inicio, comenzará con el índice 0 y si no proporcionamos el índice final, se llevará al último índice.

Valor devuelto: Devuelve una copia de la nueva array

Ejemplo 1: aquí, estamos dando el índice de inicio como 2 y el índice final como 4, por lo que dividirá los elementos 2, 3. Como puede ver, devuelve la copia de la nueva array, que estamos almacenando en la misma array . Este método también acorta la longitud de la array. Anteriormente, la array tenía una longitud de 4, después de cortar la array, se convirtió en 2.

Javascript

<script>
    // Sample array
    var arr = ["super", "duper", "upar", "chopper"];
 
    // Printing array length before function call
    console.log(arr.length);
 
    // Function call
    arr = arr.slice(2, 4);
 
    // Printing array and its length
    // after function call
    console.log(arr, arr.length);
</script>

Producción:

4
[ 'upar', 'chopper' ] 2

Ejemplo 2: aquí no estamos dando el índice final, por lo que comenzará con el primer índice y se dividirá hasta el final.

Javascript

<script>
    // Sample array
    var arr = ["super", "duper", "upar", "chopper"];
 
    // Printing length before function call
    console.log(arr.length);
 
    // Function call
    arr = arr.slice(1);
 
    // Printing array and its length
    // after function call
    console.log(arr, arr.length);
</script>

Producción:

4
[ 'duper', 'upar', 'chopper' ] 3

¿Qué hace el método delete()?

La eliminación se parece más a un operador que al método. Se utiliza para eliminar la propiedad del objeto, también puede eliminar los datos de la array. Pero no elimina las referencias por completo, lo que significa que no acorta la array. El operador de eliminación requiere la referencia para eliminar la propiedad de esa referencia. 

Ejemplo 1: Como podemos ver, le hemos dado al operador de eliminación una referencia arr[1] para que sea eliminada. Pero solo elimina la propiedad que tenía. La referencia todavía está allí y la longitud sigue siendo 4, no acortó nuestra array.

Javascript

<script>
    // Sample array
    var arr = ["super", "duper", "upar", "chopper"];
 
    // Printing array length before delete call
    console.log(arr.length);
 
    // Deleting
    delete arr[1];
 
    // Printing array and its length
    // after delete call
    console.log(arr, arr.length);
</script>

Producción:

4
[ 'super', <1 empty item>, 'upar', 'chopper' ] 4

Ejemplo 2: En este segundo ejemplo. La referencia arr[2] todavía está allí, solo se elimina su valor, por lo tanto, se muestra el indefinido, esta memoria eliminada se liberará automáticamente cuando no quede ninguna referencia al arr.

Javascript

<script>
    // Sample array
    var arr = ["super", "duper", "upar", "chopper"];
 
    // Printing array length before delete call
    console.log(arr.length);
 
    // Deleting
    delete arr[2];
 
    // Printing array reference
    console.log("The reference arr[2] is still there :", arr[2]);
 
    // Printing array length after delete call
    console.log(arr, arr.length);
</script>

Producción:

4
The reference arr[2] is still there : undefined
[ 'super', 'duper', <1 empty item>, 'chopper' ] 4

Conclusión: si queremos acortar la longitud de la array, usaremos el método de corte y si queremos mantener la misma longitud de la array por alguna razón, usaremos el operador de eliminación.

Referencias:

Publicación traducida automáticamente

Artículo escrito por jymnjogiya y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *