2012-01-25 8 views
28

Escribo una clase derivada de Array en JavaScript y necesito saber qué funciones sobrecargar para poder estar al tanto de los cambios realizados en la matriz.¿Qué funciones de matriz de JavaScript están mutando?

Sé que Array.push() y Array.splice() están mutando. ¿Hay una lista definitiva de otras?

+3

array ' .sort() 'Los comentarios deben tener al menos 15 caracteres de longitud – Mohsen

Respuesta

46

Puede encontrar la lista de MDN como Mutator métodos (junto con Accessor y Iteration métodos):

+0

El enlace del mutador es actualmente incorrecto, es n ow: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/prototype#Mutator_methods – zamnuts

+0

@zamnuts Gracias. Y parece que todos los enlaces necesitan alguna actualización. –

3

También puede utilizar .concat(), antes de utilizar el método de mutación, para asegurarse de que no están mutando sus matrices, por ejemplo

const dontMutateMe = [4,5,1,2,3]; 
const sortArray = dontMutateMe.concat().sort(...) 
+2

Con ES2015 es solo: 'const sortArray = [... dontMutateMe] .sort (...);' –

Cuestiones relacionadas