扩展js原生Array的能力

我们在日常面试中,会遇到让扩展原生js对象能力的题目。

今天我们就来练习一下对array的扩展。

题目要求如下:

请给Array本地对象增加一个原型方法,它用于删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组?

在这里我们需要知道的技能点,有如下几个

  • 在函数中,this是调用函数的对象,比如[1].push(),在push函数中,this就是[1]
  • Map对象是键值对唯一的
  • for of函数的使用

我们上代码

  (function(){
  Array.prototype.pure = function() {
    const arr = Array.from(this);
    let map = new Map();
    let tempArr = [];
    for(let item of arr) {
      map.has(item) ? tempArr.push(item) : map.set(item, item);
    }
    return tempArr;
  };
  window.console.log([111, 3, 5, 6, 11, 5, 1, 6, 1].pure());
})()
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容