扩展运算符...和map,filter等方法返回的数组是深拷贝么

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了扩展运算符...和map,filter等方法返回的数组是深拷贝么相关的知识,希望对你有一定的参考价值。

参考技术A 扩展运算符...和map,filter等方法返回的数组是深拷贝么?

我们先对扩展运算符做一个测试

由上面的测试可以看出,扩展运算符只是部分深拷贝,只是对第一层进行了深拷贝,其他都是浅拷贝

我们再对map和filter进行测试

有上面的测试可见,map和filter返回的数组也是部分深拷贝,只对第一层进行了深拷贝

我们也可以这样理解,他们都是把第一层的元素挨个取出来然后赋值给了一个新的数组

JS之JQ的map/reduce/filter/sort/reverse

参考技术A map 是遍历数组,并返回一个新数组.

reduce 是遍历数组,把所有元素组合到一起:

filter 是遍历数组,根据条件筛选 得出一个新数组

与我们之前用的数组方法仅仅返回一个新数组不同, sort 方法将改变原数组,返回被排序后的数组。
默认 :按字母顺序或数字顺序对数组中的元素进行排序。

sort 可以把比较函数作为参数传入。比较函数有返回值,当 a 小于 b,返回一个负数;当 a 大于 b ,返回一个正数;相等时返回0。

如果没有传入比较函数,它将把值全部转成字符串,并按照字母顺序进行排序。

下面的例子将展示 sort 的使用,传入的比较函数把元素按照从小到大的顺序进行排列:

reverse 对数组进行反转,对元素组操作,返回反转后的数组。

concat 方法可以用来把两个数组的内容合并到一个数组中。
concat 方法的参数应该是一个数组。参数中的数组会拼接在原数组的后面,并作为一个新数组返回。
下面是一个拼接数组的例子,用concat 把 otherArray 拼接在 oldArray 的后面:

以上是关于扩展运算符...和map,filter等方法返回的数组是深拷贝么的主要内容,如果未能解决你的问题,请参考以下文章

js数组去重的方法

前端Map的应用

every,some,filter,map数组方法区别

Python-函数式编程-map reduce filter lambda 三元表达式 闭包

js一些数组对象方法原理实现(手撕map,filter,every等)

js中的filter方法和map方法