前端笔试之去重算法

2018-12-19  本文已影响0人  KIHO_2658

在前端的笔试当中,算法是不必可少的一部分。它考验的是你的逻辑思维,你的编程基础。所以在这一章中,本人也就拿一个经典的面试题来讲解一下。

通常前端的算法语言一般采用的是Javascript,本人在这一次的算法讲解当中采用Javascript来讲解,如果是学后端的同学的话一般采用的是java、c++、python。但是算法的思路是一致的,只是语言的不同而已,并不影响我们去理解算法。

这一次,我们就一个不算太难的例子来讲解一下,他就是数组去重~~~~~~
题目:编写一个方法 去掉一个数组的重复元素

首先定义一个数组array

var array =[1,2,3,4,5,6,5,4,2,5,6,8,9,6];

实现方法我这里提供比较基础的两种

第一种:原生基础

这里用函数进行封装了一下

            function removerepeat(array){
                var temp=[];
                var result=[];
                for(var i =0;i<array.length;i++){
                    //判断是否存在
                    if(!temp[array[i]]){
                        temp[array[i]]=1;
                        //添加元素
                        result.push(array[i]);
                    }
                }
                //返回结果数组
                return result;
            }

PS:temp可以定义为一个数组,也可以定义为json格式{}。都可以用来存储数据temp里面存放的是存在的数据,循环遍历下来,把存在的数据都编为1,然后再添加到result数组之中。如果重复了的则不进入if里面。

第二种:使用indexOf属性

这里我也是用了一个函数封装,代码如下

           function removerepeat2(array){
                var result=[];
                for(var i=0;i<array.length;i++){
                      if(result.indexOf(array[i])<0){
                          result.push(array[i]);
                      }
                }
                return result;
                
            }

PS:在这里我讲解一下indexOf的属性,indexOf属性是返回你所寻找的数在数组字符串中的位置,如果找不到这个数的话,就会返回-1。

测试结果的话,使用console.log在控制台输出(本人采用谷歌浏览器)。

console.log(removerepeat(array));
console.log(removerepeat2(array));

我们打开网页,按F12打开控制台,就会看见如下结果。


image.png

OK,本次算法的分享就到这里,虽然简单,但是要认真对待。如有更好算法欢迎分享

上一篇 下一篇

猜你喜欢

热点阅读