ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

js数组部分实现

2020-01-20 14:02:10  阅读:171  来源: 互联网

标签:function arr 实现 newArr len js ++ let 数组


1.扁平化数组

arr.flat(n),n表示扁平化的次数,为Infinity

    let arr = [1, [2, 3, [4, 5]]];
    arr.flat(Infinity)
    function flatten(arr) {
      while(arr.some(item=>Array.isArray(item))){
        arr=[].concat(...arr)
      }
      return arr
    }
    flatten(arr)

2.去重

运用扩展运算符和set

    let arr = [2, 3, 4, 5, 1, 2, 3, 4];
    let newArr = [...new Set(arr)];

 

    Array.prototype.distinct = function() {
      let arr = this,
        result = [],
        len = arr.length,
        i,
        j;
      for (i = 0; i < len; i++) {
        for (j = i + 1; j < len; j++) {
          if (arr[i] === arr[j]) {
            j = ++i;
          }
        }
        result.push(arr[i]);
      }
      return result;
    };

3.排序

arr.sort((a,b)=>a-b)

冒泡排序:

 

选择排序:

    Array.prototype.bubleSort = function() {
      let arr = this,
        len = arr.length;
      for (let i = 0; i < len; i++) {
        for (let j = 0; j < len; j++) {
          if (arr[j] > arr[i]) {
            [arr[i], arr[j]] = [arr[j], arr[i]];
          }
        }
      }
      return arr; //其实不用这句话,直接改动的就是原数组
    };
    arr.bubleSort()

 

自己怪异实现方法 

    Array.prototype.resetSort = function() {
      let arr = this;
      let newArr = [];
      while (arr.length > 0) {
        newArr.push(Math.min(...arr))
        arr.splice(arr.indexOf(Math.min(...arr)), 1);
        console.log(newArr,arr)
      }
      return newArr
    };
    let newArr=arr.resetSort()

  

 

标签:function,arr,实现,newArr,len,js,++,let,数组
来源: https://www.cnblogs.com/Mijiujs/p/12217677.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有