js数组去重的思路与缓动公式

时间:2022-04-27
本文章向大家介绍js数组去重的思路与缓动公式,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

前端开发的面试中,至少有一类题是必出的,那就是去重。什么叫去重呢?就是把一组字符串中重复出现的,都删除掉。

这种题重要的是解决的思路要正确,思路正确的话其实也很简单。无非就是一个for循环,然后把每个字符都在一个临时的对象上进行保存与比较。

思路如下:

1,使用for循环,循环每一个字符;

2,将循环的结果,保存在变量之中,这个变量,可以是对象,也可以是数组;

3,在每次循环中设置适当的if判断条件

伪代码:

var _v = 'adfaf';
var str = {};
str['a'] = 123;
str['b'] = 456;
for(...){
 if( 第i个字符 in 临时对象中 ){
 str[_v[i]]++;
 } else {
 就将此第i个字符,添加到对象中
 str[_v[i]] = 1;
 }
}

这类面试题所考核的知识点之一,就是对于js对象的键值对的知识点的掌握。

////////

arguments与arguments.callee,今天对它也进行了着重的讲解。虽然我个人觉得面试题中提到它并不多,但做为一个js的知识点,也是需要讲解的。

<!-- arguments -->

它,也是一个对象,但同时它是函数的内置属性。

它非常类似于数组,但又不是数组。

它有length长度方法,可以使用[n]来获取arguments成员;

但不能使用数组的相关方法。

它的length,长度是由实参决定的,而不是形参。

就是说,你向某函数中传入多少个值,

那么此函数的auguments的长度就是多少,

与此函数的形参无关。

<!-- -->

arguments有一个属性:callee [kɔ:ld],被召者,被叫,

它返回的是,此arguments对象它所在的当前函数的引用。

它在使用的时候,一般用来代替,“当前函数的名称”。

事实上,在递归中对于arguments.callee的应用比较多。

递归:

function xxx(n){
 if(n>1){
 <!-- xxx() -->
 arguments.callee(n-1);//代替,“当前函数的名称”
 }
}

////////

下午的时候主要讲了缓动公式。我们日常在用js或css来写页面动画的时候,需要用到一些动画函数,这些函数中已经封装好了各种的数学公式,以各种js或css方法的形式出现,

例如,

Linear:无缓动效果;easeIn;easeOut;easeInOut...

缓动公式其实长这样,

这些都是数学公式在js程序代码中的应用与实现。讲这些东西不是要让大家去推导这些数学公式,而是想让你们明白,咱们使用的各种动画函数,到底是如何起作用的。

通过各种实例来让大家了解并掌握上面那些知识点,因为它们是组成前端知识结构的细节。一句话,只是为了“知其然”。