splice
para esto, que toma argumentos para el índice de dónde comenzar a eliminar elementos, luego la cantidad de elementos que se eliminarán. Si no se proporciona el segundo argumento, el valor predeterminado es eliminar elementos hasta el final. Sin embargo, el método de splice
muta la matriz original a la que se llama. Aquí hay un ejemplo: var cities = ["Chicago", "Delhi", "Islamabad", "London", "Berlin"];Como vimos en el último desafío, la
ciudades.splice (3, 1); // Devuelve "Londres" y lo elimina de la matriz de ciudades
// ciudades ahora es ["Chicago", "Delhi", "Islamabad", "Berlín"]
slice
método no muta la matriz original, pero devuelve una nueva que se pueden guardar en una variable. Recuerde que el método de slice
toma dos argumentos para que los índices comiencen y terminen la división (el final no es inclusivo) y devuelve esos elementos en una nueva matriz. Uso de la slice
método en lugar de splice
ayuda a evitar los efectos secundarios de matriz-mutación. nonMutatingSplice
utilizando slice
lugar de splice
. Debe limitar la matriz de cities
proporcionada a una longitud de 3 y devolver una nueva matriz con solo los tres primeros elementos. No mute la matriz original proporcionada a la función. slice
.
testString: 'assert(code.match(/\.slice/g), "Your code should use the slice
method.");'
- text: Su código no debe utilizar el método de splice
.
testString: 'assert(!code.match(/\.splice/g), "Your code should not use the splice
method.");'
- text: La matriz inputCities
no debería cambiar.
testString: 'assert(JSON.stringify(inputCities) === JSON.stringify(["Chicago", "Delhi", "Islamabad", "London", "Berlin"]), "The inputCities
array should not change.");'
- text: 'nonMutatingSplice(["Chicago", "Delhi", "Islamabad", "London", "Berlin"])
debe devolver ["Chicago", "Delhi", "Islamabad"]
.'
testString: 'assert(JSON.stringify(nonMutatingSplice(["Chicago", "Delhi", "Islamabad", "London", "Berlin"])) === JSON.stringify(["Chicago", "Delhi", "Islamabad"]), "nonMutatingSplice(["Chicago", "Delhi", "Islamabad", "London", "Berlin"])
should return ["Chicago", "Delhi", "Islamabad"]
.");'
```