zoukankan      html  css  js  c++  java
  • 手写数组的函数

    一、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
    })
    
  • 相关阅读:
    用于图片处理的10个超级jQuery插件
    [VS2010].NET4.0环境下使用.NET2.0程序集,出现“混合模式程序集异常”
    对企业虚拟化应用的一些感受[原创]
    留学生不回国:中国物价超美国 没车没房没尊严!
    Research Assembly Setting!
    [转] 微软的软件测试方法(附读后感)
    应用 ZedGraph
    [转] LOGIGEAR SECURITY POLICIES
    一道程序运行结果题
    VS05 与 VS08并存时编译出现 The binding handle is invalid.
  • 原文地址:https://www.cnblogs.com/yyrecord/p/13438473.html
Copyright © 2011-2022 走看看