行知任之 每一次旅行都是不同的尝试!

数组去重的灵活应用

  数组去重在实际的项目中貌似没怎么用到,不过在面试题中到见的不少:

˃ 手写实现数组去重方法。

  一般这样的面试题还要求的不止一种方法实现,这就需要充分考虑数组的使用了。

方法一: 使用ES6中的 Set() 方法

  Set()是ES6提供的新的数据结构,其类似于数组,但是成员值都是唯一的,没有重复的值。利用这一特性,完成数组的去重操作。这里需要注意的是返回值也是类数组的 Set数据结构,需要转换成数组结构。


  <!--autointro-->

标签: JavaScript

作者:Bryan 分类:JavaScript 浏览:67 评论:0

可迭代对象的特点

可迭代对象可通过 for...of进行循环。

模拟迭代器:


    function makeIterator(arr) {
        var nextIndex = 0;
        return {
            next: function () {
                return nextIndex  为了实现可迭代,一个对象必须实现 iterator 方法,这意味着这个对象(或其原型链中的一个对象<!--autointro-->

标签: JavaScript

作者:Bryan 分类:JavaScript 浏览:62 评论:0

JS如何实现深拷贝

  前段时间在网上刷面试题有看到深度拷贝,当时只是简单的看了一下,没有细致的研究,不巧的是在面试的时候刚好有一个笔试题是手写深度拷贝,顿时有点儿凌乱了,凭着一丝丝的记忆,写了一个基础版本。现在重点看待深度拷贝问题,写一篇自己的理解。

  在了解深度拷贝前,先说一下为什么会需要深度拷贝。

  众所周知的问题,JS数据类型大致分为两类,一类是基础数据类型,一类是复杂数据类型(引用类型)。复杂数据类型在变量中保存的是引用地址,当复制变量的时候其实复制的是该引用地址,而非数据。当原始数据发声

标签: JavaScript

作者:Bryan 分类:JavaScript 浏览:109 评论:0

变态面试题解析 -- 第一题

“44个 Javascript 变态题解析 – 第一题”

["1","2","3"].map(parseInt)

涉及知识点:
Ⅰ. Array.prototype.map()

    方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。


    参数
    callback
    生成新数组元素的函数,使用三个参数:
    &nbsp;&nbs<!--autointro-->

标签: 面试题

作者:Bryan 分类:面试题收集 浏览:58 评论:0

实现一个工具类,判断任意数据类型

  在JavaScript中数据类型分为两类,一类是基础数据类型,包括String(字符)、Number(数字)、Boolean(布尔)、null(空)、undefined(未定义)、Symbol(ES6新增),另一类是复杂数据类型 Object。

标签: JavaScript

作者:Bryan 分类:JavaScript 浏览:67 评论:0

变态面试题解析 — 第二题

typeof操作符返回一个字符串,表示未经计算的操作数的类型。typeof 的应用算是比较简单的,只要清楚基本的对应结构即可。
instanceof用于测试构造函数的prototype属性是否出现在对象的原型链中的任何位置

标签: 面试题

作者:Bryan 分类:面试题收集 浏览:63 评论:0