2012-01-25 3 views
28

Я пишу класс, полученный из массива в JavaScript, и должен знать, какие функции перегружать, чтобы я мог знать изменения, внесенные в массив.Какие функции JavaScript-массива мутируют?

Я знаю Array.push() и Array.splice() являются мутировавшими. Есть ли окончательный список других?

+3

'массив .sort() 'Комментарии должны быть длиной не менее 15 символов – Mohsen

ответ

46

Вы можете найти список на MDN как Mutator методов (наряду с Accessor и Iteration методами):

+0

Ссылка на мутатор в настоящее время некорректна, это n ow: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/prototype#Mutator_methods – zamnuts

+0

@zamnuts Спасибо. И, похоже, все ссылки нуждаются в обновлении. –

3

Вы также можете использовать .concat(), прежде чем использовать метод мутации, чтобы убедиться, что вы не мутирует ваши массивы, например

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

С ES2015 это просто: 'const sortArray = [... dontMutateMe] .sort (...);' –

 Смежные вопросы

  • Нет связанных вопросов^_^