阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      JavaScript 数组去重

      问题

      数组去重,注意3和"3"的两种类型,还可以引申到有对象类型时的去重;(如果不新建新的数组,该怎么写?)

      第1种

      Array.prototype.distinct = function () {
        var a = this;
        for (let index = 0; index < a.length - 1; index++) {
      
          for (let i = index + 1; i < a.length;) {
            if (a[index] == a[i]) {
              a.slice(i, 1);
            } else {
              i++
            }
      
          }
        }
        return a;
      }
      

      第二种写法,这种的最好

      var arr = [3, 2, 3, 1, 4, true, false, "3", "22", "2", 2]
      function norepeat (arr) {
        var resArr = [];
        var obj = {};
        for (var i = 0, len = arr.length; i < len; i++) {
          if (!(obj[arr[i] + typeof arr[i]])) {
            resArr.push(arr[i]);
            obj[arr[i] + typeof arr[i]] = 1;
          }
        }
        return resArr;
      }
      var res = norepeat(arr);
      console.log(res);
      

      第三种写法

      function noRepeat (arr) {
        var obj = {}
        for (var i = 0, len = arr.length; i < len; i++) {
          var cur = arr[i];
          if (obj[cur] == cur) {
            arr.splice(i, 1);
            i--;
            continue;
          }
          obj[cur] = cur;
        }
        return = null;
      }
      

      更多面试题

      如果你想了解更多的前端面试题,可以查看本站的WEB前端面试题 ,这里基本包涵了市场上的所有前端方面的面试题,也有一些大公司的面试图,可以让你面试更加顺利。

      面试题
      HTMLCSSJavaScript
      jQueryVue.jsReact
      算法HTTPBabel
      BootStrapElectronGulp
      Node.js前端经验相关前端综合
      Webpack微信小程序-

      这些题库还在更新中,如果你有不错的面试题库欢迎分享给我,我整理后放上来;人人为我,我为人人,互帮互助,共同提高,祝大家都拿到心仪的Offer!

      目录
      目录