00:01
好,咱们在这个视频当中呢,咱们着眼把这个lookup这个函数咱们给它写出来啊,Lookup这个函数咱们给它写出来,嗯,Lookup这个函数呢,实际上它的算法呢,啊,在大厂的面试是考过的啊,他就说让你从一个对象当中,诶能够识别这个字符串。那他的思路其实不是递归啊,这个他的思路不是递归,它的思路其实就很简单,就是你得给他存一个临时的一个字符串。啊,临时的一个,就比如说咱们现在让这个叫,呃,临时的一个。一个一个这个值咱们叫temp吧,呃,Temp一开始等于这个data OB勾,然后呢,它先拆分这个点啊,因为你这个点a.b.c要传过来。对吧,诶点a.b.c要传过来,然后呃,点a.b.c传过来,传过来的时候,然后这个时候我们就需要把按点给它拆分成数组啊。
01:01
诶,按点拆分成数组,那这个大家应该明白。啊,这个大家应该明白,就是key name,如果我split一个点的话,那这个时候它会返回什么,是不是就返回A逗号B逗号C这样的一个数组啊。好,那么面对这样子的一个呃数组啊,面对这样的一个数组,那其实这个很简单,就是我先去找A嘛。找A的话,然后A里头不就这个对象吗。对吧,然后再让这个对象成为temp。然后再去找B。哎,对,然后B不就是这个吗?再让这个对象成为temp,最后再找C,直到你找的这个值呢,是一个基础类型值。明白吗?哎,也不是说技术类型就是直到你你你是数组遍历完了,你就返回这一层东西就行。啊,所以这个就是会那个面试的时候呢,他实际上是。啊,是会考你啊,然后呢,咱们有同学是在那个牛客网啊,牛客网牛客网大家可能不知道啊,给大家看一下,这叫牛客网啊,这个牛客网是干嘛的呢?这个牛客网就是做那种在线面试的啊哎。
02:16
就是面试官会让你在这个线上啊,让你在这个牛客网上进行面试,哎,比如说这个字节跳动。啊,然后它左边是一个编程的区域,右边呢是他的题目啊,就会让你去啊,去进行这样子的一个啊一个编程啊,就会编这种题啊,所以这个地方就很简单啊很简单。好,那咱们现在就开始啊,首先先去看看啊,咱们的key内中。有没有点符号。哎,那么就是如果你的key name中index of,啊这个点它是大于零的。啊,为什么要大于零,就是不等于一嘛,哎,不是负一嘛,就行了啊,有没有点号,如果有,哎,如果有点符号,那么拆开。
03:07
所以这就是names,就等于key name。然后我们再split一个点。这样子的。啊,给他split一个点。哎,那这个names呢,就相当于我们现在就能看见啊,咱们输出一下。啊输出啊是不耽误时间的啊,输出不耽误时间。所以你要经常输出看一下,你看MNP不就有了吗。他为什么输出的是MNP,不是输出的ABC,因为我们测试的时候这是MNP呀。是吧,哎,然后就一层一层的写写就行了。啊,一层一层的写就行了。哎,我们先让这个temp等于它。啊,然后我们写for。便利。
04:02
啊。或者叫kiss。好,然后我们再让这个就等于。你这个对象。方括号啊。这个kiss中的第项。哎,就OK了,它就一层一层的找出来了啊,他先迭代这个a tap就成它了,然后再去迭代这个B就成它了啊,当然它可能有别的属性,别的属性它是不碍着这个别的属性它是访问B嘛。它是会访问这个B,因为你这个数组当中不是有一个写了点B吗。就这样。对吧,然后都返回之后,最后你的这个ta就是你那个值嘛。刷新你看诶,这怎么是安迪范呢?我们看看怎么回事啊。
05:04
看一看怎么回事?我们要便利这个case。对吧,然后遍历这个case的时候,我让从这个数据对象当中,哦,对不起,不是数据对象中是time,因为它是一层一层找,是就是上一层的这个键,然后再存在它啊,也就是他相当于像包洋葱似的啊,先一开始的是它整个嘛。然后呢,是从time找A,然后从剩余的这部分找B啊,而不是从这个整个洋葱中去找B,整个洋葱中没有B啊。哎,所以这块写错了,刷新诶123出来了。看见了吧。啊,所以这个lookup这个函数很简单啊。F,所以这块要返回这个temp就行。啊,那如果如果这里面。没有点符号,你注意这里不用写else啊,因为你这已经return了。所以一旦进入if语句之后呢,就走了,这块就不执行了,那就相当于这里呢。
06:05
对吧,哎,就是没有点符号。那没有点符号不是很简单吗?就直接返回data OB勾中的key name就行。啊。看到了吗,这样。哎,这样。所以这个lookup函数就写完了。啊拆开,然后咱们在这设设置一个临时变量。哎,然后这个临时变量啊,临时变量对吧,哎,用于周转。哎,一层一层找下去。啊,用于周转,一层一层找下去。是这样子的。好,然后每找一层都把它设为新的临时变量。临时变量啊,这样子的返回这个临时变量啊。那还记得吗?
07:02
还记得吗?就是我们为什么要去写这个lookup函数?我们写lookup函数的原因是不是因为刚才这句话,我爱上硅谷,上硅谷也爱我,我好开心啊,我考了安迪范的分。这是我们的出发点啊,千万不忘初心,方得始终啊。你别这个程序写着写着,程序特别大啊,写着写着就不知道自己在干嘛了。所以咱们再说句题外话啊,这就告诉大家,一定要去使用模块化编程。如果你不使用模块化编程的话。啊,那这个时候咱们就说句实在话,就是你上下翻就能把你自己给翻懵了。那个代码上下翻飞。所以当你模块化之后呢,你这个代码没有那么长啊,没有那么长一个小函数,咱们就写成一个JS文件。
08:00
就很简单。对吧,哎,很简单。哎,好,那咱们现在的话呢,我们就给他,呃,这块就有问题了。这块实际上是要lookup一下,因为你这块不是a.b.c吗,这100分不是在这个。啊,这个测试可以删了。测试可以删了,刚才是测试。你别忘了,你这HTML当中是a.b.c啊这。那刚才是这是安迪发,看见没有?啊,那我现在有了lookup之后,我是不是。牛了是吧,所以说这就可以依赖啊。哎,我把依赖写在顶上啊。发现了吗?模块化开发是不是很好啊,兄弟们啊,就是你其实通过这个例子啊,我估计你对模块化开发它会都会有一个更深层次的一个印象啊,都知道他到底是怎么玩的了,所以挖派这个东西啊,确实好用。
09:01
所以这块不是data ton1了啊,而是lookup,哎,Data ton1这样写。啊,那这样的话,你看100分是不是出来了。就相当于这个a.b.c呢,就被成功的写出来了。好吧。恭喜大家,贺喜大家,我们又成功的书写了一个函数啊。所以说你就会发现咱们整个的这个包啊,就是由一个个独立的函数咱们给写出来的啊。那么这些一个个独立的这些函数呢,一定要能进行单元测试,就是你写一个函数,测试一个函数,你就这么想,每个函数都正常工作了,那整体它就能正常工作了。所以啊,千万啊,大家一定记住了啊,不要光去在乎那个六便士啊,一定都要看看月亮啊,这不有一个书叫月亮与六便士吗?啊,就不要光去啊,这个在乎这个,呃,这个这个大地啊,咱们也要仰望一下星空,什么叫星空呢?就是这些包的底层原理还是挺漂亮的啊,尤其是老师给大家讲了之后,咱们大家呢,要有兴趣把它给写出来。
10:12
啊,给他写出来,然后这个时候你就会发现,呃,你的提升是要比写很多业务啊提升都要大的。这个毫不夸张啊,就写这种底层的东西呢,他对你的提升是很大的很大的啊。好了,那咱们这写下注释,哎,如果是内幕类型啊,那么就什么呀,对就。呃,直接啊,使用它的这个值啊,当然啊要用lookup。为什么?因为防止,防止。这里是a.b.c这样的有逗号的形式。啊,就很简单了。好了,那这个呢,咱们大家就明白了,哎,这个咱们就就就明白了啊这个。
11:05
好,那咱们下一个视频是不是就要开始在这写递归了,咱们刚才不是踩了一脚刹车吗?啊,幸亏老师踩了一脚刹车,因为递归一旦开始了,咱们再回来讲这lookup你就乱了。啊,你就乱了,所以所以老师呢,每次备课的时候,不光要准备这个课程内容啊,还要给你准备怎么讲。对吧,哎,还要给你准备怎么讲啊,所以这就是比较有意思的这样的一个啊,一个事情啊。好,那咱们这就,呃,这个视频咱们就结束,然后下个视频咱们递归啊。
我来说两句