2012-01-25 3 views
28

Sto scrivendo una classe derivata da Array in JavaScript e ho bisogno di sapere quali funzioni sovraccaricare in modo da poter essere a conoscenza delle modifiche apportate all'array.Quali funzioni di array JavaScript stanno mutando?

I so Array.push() e Array.splice() stanno mutando. C'è un elenco definitivo di altri?

+3

'Array .sort() 'I commenti devono avere una lunghezza minima di 15 caratteri – Mohsen

risposta

46

È possibile trovare l'elenco su MDN come Mutator metodi (insieme con Accessor e Iteration metodi):

+0

Il link del mutatore non è correntemente corretto, è n ow: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/prototype#Mutator_methods – zamnuts

+0

@zamnuts Grazie. E, sembra che tutti i link necessitino di qualche aggiornamento. –

3

È inoltre possibile utilizzare .concat(), prima di utilizzare il metodo di mutazione, per assicurarsi di non stanno mutando gli array, ad esempio

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

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