2.filter方法,其作用的返回一个新的数组,其根据是数组返回的true与false来确定新的数组,如果返回的结果是true则将原数组中的这一项放在新的数组之中,最后直到原数组遍历完形成一个新的数组。在这个方法当中的方法参数第一个当前数组中的每一项,第二个参数为当前数组的index。首先我们使用原生的filte方法来进行使用。,代码如下:
那么接下来就是原理的实现过程,代码如下:
其原理也是相对的比较简单,使用for循环进行遍历然后再使用一个新的数组去接收这个结果,最后返回新的数组。其应用如下:
3.map方法其作用是调用数组中的每一个元素去进行某个函数的操作,最后返回一个新的结果。其参数也与上面的参数一样,首先对系统封装好的函数进行调用。在对这个函数的原理进行封装之前我们还需要了解的就是深度克隆。下面是使用深度克隆之后obj1完全的复制obj2中的内容。代码如下:
为什么叫深度克隆呢,是因为在克隆对象的过程中如果内部有对象,如果是简单的赋值就不能将对象中的内容赋值过去。因此在这里就需要深度克隆。其代码如下:
在深度克隆的方法当中,需要设置两个参数,第一个参数用于接收第二个参数中的内容。在这里将第二个元素我们称之为目标元素。首先执行一个目标元素是否为空,如果不为空就执行下面的逻辑。在循环遍历的过程中使用for in语句对这个对象进行遍历,如果当前复制的内容是数组就直接进行赋值,如果是对象则再进行之后的逻辑。这样一直循环遍历,最后返回目标元素即可实现深度克隆。那么接下来我们就继续实现之前的map方法,其原理代码如下:
在这部分的代码当中与之前实现filter类似,但是不同点在于如果数组内部是一个对象,就得对器进行判读,然后使用克隆。接下来就是自己封装的方法进行使用:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UrPGC5Kp-1651806814200)(https://im 《大厂前端面试题解析+Web核心总结学习笔记+企业项目实战源码+最新高清讲解视频》无偿开源 徽信搜索公众号【编程进阶路】 g-blog.csdnimg.cn/20190819162045235.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NhcmVfeW91cnNlbGY=,size_16,color_FFFFFF,t_70)]
行使用:
[外链图片转存中…(img-UrPGC5Kp-1651806814200)]