00:00
Hello,大家好,那么从这个小节开始呢?我们来封装实现一些与数组相关的API函数。呃,大家可以看一下,我们要实现的API有这么多啊。这些名字呢,大家有些看起来会比较熟悉,比如说map filter finds every con slice sli等等等等。那这些单词呢,其实都是跟数组原型对象上面的方法都是同名的。呃,我们呢,就是借助于对这些函数的封装,来实现一下与那些方法相同的效果,让大家知道这个内部到底是怎样去实现的。那好,那么这个小节我们先来实现一下,第一个就是map。那么这个map它有什么用呢?我们可以来先看一看圆形上面map这个方法它的作用。就是创建一个新的数组。也就是说我们调完这个方法之后呢,就会返回一个新的数组。这个数组里边每一个元素是元数组当中每一个元素调用回调之后。
01:08
啊,它的返回结果。大家可以看下这个案例啊,这是一四九十六,这是原数组,然后呢,在map里边传了一个回调。啊,这个回调是乘以了二,就是让数组里边每一个元素都乘以二,返回一个新数组,可以看这二八十八,然后32。而我们要封装这个。函数map呢?它的效果与这个map方法的作用是一模一样子的。我们可以先把最终的效果先写出来啊。我先声明一个数组。啊,声明一个数组cost a等于,然后我们写一个12345。现在我们的需求是这样的,将数组里边每个元素呢都乘以一个十啊,返回一个新数组。Result等于map括弧。
02:02
第一个参数就是我们的原数组,第二个参数呢,就是我们对应的回调。啊,当然这块的话,你可以咱也可以写镜头函数。然后我这写一个item。然后这呢,我return一个item乘以一个十。然后最后的打印结果。啊,最后我们希望呢,Result,它这个结果呢,应该是啊,十二十三十四十五十,啊这是我们最终希望的一个结果。那好,下边的话我们开始对这个,呃。功能做一个实现,首先呢要先声明这个函数map。他呢接收两个参数,第一个参数是数组元数组,第二个参数是一个回调call back。好,然后接下来我们如何去。呃,实现这个效果呢,首先我们可以先这样子声明,一个空的数组。啊,声明空数组,那就是let result等于一个空数组。
03:04
空数组完成之后呢,下边我们要对数组里边每一个元素呢,进行一个回调执行,所以说咱们要遍历一下数组。来个for循环,Let I等于零,I呢小于A2,点Les I加,加。然后在里边开始执行回调。执行回调。回调怎么执行呢?那就是call back,大家看一下啊,这个时候呢,这个函数。哎,就传给了call back了,然call back开始执行,那call back执行时需要接受一个参数。啊,其中一个食参,食参是谁呢?食参就是应该是数组里边的正在变历的那个元素。啊,它会有一个返回结果。啊,然后这个返回结果的话,我们要把它放到哪儿呢?放到result里边去,所以说应该是result.push。把它压到里边。啊,然后压完之后呢,最终再返回结果。
04:02
啊,直接return一下result就可以了,那么其实呢,在咱们还要稍微注意一个小点,就是在map设置回调的时候呢,第一个参数是那个键值,第二个参数呢是那个下标。Index,所以说在这儿的话,我们还可以怎么办呢,还可以把这个下标呢,也传进来,下标就是这个谁啊I。啊,当然目前这个情况来看的话,可传可不可传啊,但是呢,在map方法里边,就是数组原型上面这个map方法里边,它是允许我们呢传递一个下标的。然后这样一来,我们整个的功能就写完了,完了之后咱们来做一个测试。把它引进来,Script s RC等于点点杠点点杠啊。Src。然后数组。就是他。OK,咱们点开浏览器测一下。刷新里们瞅一眼,大家看这啊,十二十三十,40 50就来了,而且在里边我们也可以拿到当前这个元素它的下标。
05:05
来看一眼。刷新。01234没有问题。好了,那么关于第一个函数map的封装,我们就完成了。
我来说两句