用ES6巧妙的解决传统面试中的算法小问题!

最近自己也在准备面试,在复习算法的时候,机智的用了一波ES6.一起来瞧瞧吧!

1.数组的去重

        var arr=str.split(‘‘);
        for(var i=0;i<arr.length-1;i++){
            for(var j=i+1;j<arr.length;j++){
                if(arr[i]==arr[j]){
                    arr.splice(j,1);
    //                arr.length-=1;删完长度自动减1
                    j--;
                    console.log(arr)
                }
            }
        }

用两层循环来做的话,好像麻烦了点哦。好像ES6中的Set可以用。试试看?

    var arr=[1,3,55,12,32,3,66,12,358,66,73,32];
    var a=new Set(arr);//SET是类数组的集合
    console.log(a,a.size);
//    arr=Array.from(a);将类数组转换为数组
    arr=[...a];//扩展运算符

what ? so easy ,没有那么多逻辑,代码量也很少。简直太酷炫了!!!

2.如何拼接两个数组?

传统的for循环就不多说了,当然concat也是可以的,还是直接上ES6吧!

    var arr1 = [1,2,3];
    var arr2 = [4,5,6];
    arr1.push(...arr2);

或者是这样的

   var arr1 = [1,2,3];
   var arr2 = [4,5,6];
   var arr3 = [...arr1,...arr2];

后面还是会继续写关于算法的问题,或者是ES6的。希望觉得不错的小伙伴,可以点个赞加个关注啥的.

(写第一篇博客的时候,内容过于多,过于杂,以后会走文字少,精简的风格的,毕竟我自己看别人博客的时候,内容过多或者杂的话,就容易脑袋疼)。

PS:从不copy别人的博客,纯自己手打。

时间: 2024-08-30 12:37:50

用ES6巧妙的解决传统面试中的算法小问题!的相关文章

程序员如何快速准备面试中的算法

前言 我决定写篇短文,即为此文.之所以要写这篇文章,缘于微博上常有朋友询问,要毕业找工作了,如何备战算法.尽管在微博上简单梳理过,如下图所示: 但因字数限制,特撰此文着重阐述下:程序员如何快速准备面试中的算法,顺便推荐一些相关的书籍或资料. 备战面试中算法的五个步骤 总体来说,备战面试中的算法,分为五个步骤,如下: 1.首选你得确保自己已经掌握好一门编程语言 如果是C的话,推荐Dennis M. Ritchie & Brian W. Kernighan著的<C程序设计语言>,和<

程序员如何快速准备面试中的算法 - 结构之法

准备面试.学习算法,特别推荐最新出版的我的新书<编程之法:面试和算法心得>,已经上架京东等各大网店 前言 我决定写篇短文,即为此文.之所以要写这篇文章,缘于微博上常有朋友询问,要毕业找工作了,如何备战算法.尽管在微博上简单梳理过,如下图所示: 但因字数限制,许多问题无法一次性说清楚,故特撰此文着重阐述下:程序员如何快速准备面试中的算法,继而推荐一些相关的书籍或资料.顺便也供节后跳槽.3月春季招聘小高潮.及6月毕业找工作的朋友参考. 备战面试中算法的五个步骤 对于立志进一线互联网公司,同时不满足

包建强的培训课程(5):面试中的算法题

Normal 0 10 pt 0 2 false false false EN-US ZH-CN X-NONE $([{£¥·‘“〈<「『[[[〝﹙﹛﹝$(.[{£¥ !%),.:;>?]}¢¨°·ˇˉ―‖’”…‰′″›℃∶.."〉>」』]]]〞︶︺︾﹀﹄﹚﹜﹞!"%'),.::?]`|}-¢ /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0;

初识面试中的算法题

在面试过程中,常常被要求手撕代码,作者作为测试经理,也经常被手撕代码.手撕代码的内入无非是对字符串.数组.元组.字典进行操作.第一题:取值:1.从字符串及元组中取值str1 = "abcd"stra, strb, strc, strd=str1结果:"a","b","c","d"2.从数组中取值list1 = [a,b,c,d]lista = list1[0],以此类推,中括号中的数字是数组的下标,从0开始

面试中常见算法1

Problem 1 : Is it a loop ? (判断链表是否有环?) Assume that wehave a head pointer to a link-list. Also assumethat we know the list is single-linked. Can you come up an algorithm to checkwhether this link list includes a loop by using O(n) time and O(1) space

常见面试中的算法解法

1.替换空格 解法:如果通过直接遍历str,找到其中的空格就进行替换,这样做时间复杂度则为O(n2),那么我们得想到优化这个替换过程,我们可以先遍历str得到有多少个空格需要替换,然后从后向前进行遍历这个str进行替换. 2.从尾到头打印链表 解法一:从头遍历链表,将遍历结果依次存进一个栈中,然后再遍历这个栈,就可以得到这个链表从尾到头每个节点的值 解法二:我们采取递归,代码如下. 3.用两个栈实现队列 栈的特点是后进栈先出,队列是先进栈先出.那么如果用两个栈实习的队列的添加和删除 a->b 

面试中注意3个javascript的问题

JavaScript 是所有现代浏览器的官方语言.因此,各种语言的开发者面试中都会遇到 JavaScript 问题. 本文不讲最新的 JavaScript 库,通用开发实践,或任何新的 ES6 函数.而是讲讲面试中经常出现的 3 个 JavaScript 问题.我问过这些问题,我的朋友说他们也问. 当然不是说你在准备 JavaScript 面试时只要学习这 3 个问题 -- 你还有很多途径去更好的准备即将到来的面试 -- 但面试官很有可能通过下面 3 个问题来判断你了解和掌握 JavaScrip

前端面试中的常见的算法问题

虽说我们很多时候前端很少有机会接触到算法.大多都交互性的操作,然而从各大公司面试来看,算法依旧是考察的一方面.实际上学习数据结构与算法对于工程师去理解和分析问题都是有帮助的.如果将来当我们面对较为复杂的问题,这些基础知识的积累可以帮助我们更好的优化解决思路.下面罗列在前端面试中经常撞见的几个问题吧. Q1 判断一个单词是否是回文? 回文是指把相同的词汇或句子,在下文中调换位置或颠倒过来,产生首尾回环的情趣,叫做回文,也叫回环.比如 mamam redivider . 很多人拿到这样的题目非常容易

[HTML面试]HTML5 面试中最常问到的 10 个问题

1. HTML5 新的 DocType 和 Charset 是什么?HTML5 现在已经不是 SGML 的子集,DocType 简化为:                  <!doctype html>HTML 5 指定 UTF-8 编码的方式如下:                 <meta charset="UTF-8"> 2. 如何在 HTML5 页面中嵌入音频?HTML 5 包含嵌入音频文件的标准方式,支持的格式包括 MP3.Wav 和 Ogg:<