• 手写数组的函数


    一、slice方法

    1、作用

    arr.slice(); 数组截取元素,返回被截取的新元素,原数组不改变

            var arr = [1, 2, 3, 4, 5];
            // var arr2 = arr.slice(); //复制arr的所有元素给arr2,没有引用关系
            // var arr2 = arr.slice(0); //复制arr的所有元素给arr2,没有引用关系
            // var arr2 = arr.slice(3); //将数组从下标3开始到结尾截取形成新数组
            // var arr2 = arr.slice(-2); //将数组从倒数第2位开始到结尾截取形成新数组
            // var arr2 = arr.slice(3, 4); //将数组从下标3开始到下标4截取形成新数组
            // var arr2 = arr.slice(-2, 4); //将数组从倒数第2位开始到下标4截取形成新数组
            // var arr2 = arr.slice(-2, -1); //将数组从倒数第2位开始到倒数第1位截取形成新数组
            // console.log(arr2, arr);
    

    2、封装

    Array.prototype.mySlice = function () {
      var start = 0;
      var end = this.length;
      if (arguments.length === 1) {
        start = arguments[0];
      } else if (arguments.length === 2) {
        start = arguments[0];
        end = arguments[1];
      }
      var temp = [];
      for (var i = start; i < end; i++) {
        tmp.push(this[i]);
      }
      return temp;
    }
    

    3、应用

    [].mySlice.call(fakeArr) 可以把伪数组fakeArr转为数组

    二、find和findIndex方法

    1、作用

    find 接收一个方法作为参数,方法内部返回一个条件,find 会遍历所有的元素,执行你给定的带有条件返回值的函数,符合该条件的元素会作为 find 方法的返回值,如果遍历结束还没有符合该条件的元素,则返回 undefined
    findIndex()函数也是查找目标元素,找到就返回元素的位置,找不到就返回-1。

    2、封装

    Array.prototype.myFind = function (conditionFunc) {
      for (var i = 0; i < this.length; i++) {
        if (conditionFunc(this[i], i)) {
          return this[i]
          // return i   // 返回索引,即fandIndex()方法
        }
      }
    }
    
    var ret = users.myFind(function (item, index) {
      return item.id === 2
    })
    
  • 相关阅读:
    Nginx学习高可用
    Nginx安装学习
    Nginx服务器熟悉
    SVN无法连接解决方法
    CentOS 7下搭建SVN服务器&多项目教程
    iframe操作
    Java 微服务架构选型
    vue-cli4.5创建vue项目
    线程间的协作(wait/notify/sleep/yield/join)
    多线程的创建、停止
  • 原文地址:https://www.cnblogs.com/yyrecord/p/13438473.html
Copyright © 2020-2023  润新知