JavaScript数组方法: 变异方法 (mutation method)和非变异 (non-mutating method)

Posted zhongsr

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript数组方法: 变异方法 (mutation method)和非变异 (non-mutating method)相关的知识,希望对你有一定的参考价值。

javascript提供了几种添加,删除和替换数组中项目的方法。但是其中一些方法会使数组发生变化,而另一些则是不发生变化的。他们产生一个新的数组。

变异方法 (mutation method)

push()、pop()、shift()、unshift()、splice()、sort()、reverse() 等, 都会改变调用了这些方法的原始数组。
如:

const mutatingArr = ['a',' b', 'c']
mutatingArr.push('d');   //['a', 'b', 'c', 'd']
mutatingArr.unshift('e');   //['e', 'a', 'b', 'c', 'd']
console.log(mutatingArr);  //['e', 'a', 'b', 'c', 'd']

非变异 (non-mutating method)

filter()、concat()、slice()、map() 调用这些方法不会改变原始数组,而是返回一个新的数组。
如:

const arr1 = ['a', 'b', 'c', 'd', 'e'];
const arr2 = arr1.concat('f'); // ['a', 'b', 'c', 'd', 'e'. 'f']
console.log(arr1); // ['a', 'b', 'c', 'd', 'e']

以上是关于JavaScript数组方法: 变异方法 (mutation method)和非变异 (non-mutating method)的主要内容,如果未能解决你的问题,请参考以下文章

面试: Vue数组的变异方法

js数组方法之数组变异方法

vue数组变异方法

数组变异方法替换数组动态数组响应式数据

数组变异方法替换数组动态数组响应式数据

使用可变数组函数时,将变异方法发送到不可变对象错误