zoukankan      html  css  js  c++  java
  • 伪数组转换为真正的数组

    1. 如何将伪数组转换为真正的数组深入解析
    常见的伪数组:argument、通过document.getElements获取到的内容
    伪数组具有length属性,也是一个一个的元素组成,但构造器不是Array,不能使用数组的方法
    转换数组的方法:
    1.通过遍历将伪数组里元素放入到一个新的数组里
    let arg = arguments
    let arr = []
    for(var I = 0;I < arg.length;I ++){
          arr.push(arg[i])
    }
    1. 通过call改变数组slice方法里的this指向
    一个数组都是由它的构造器实例化出来的,var a = [];正规的用法:var a = new Array()因为Array是一个构造函数,每一个构造函数都有原型,且构造函数构造出来的实例可以使用原型上的方法,也就是说因为Array的原型上有一些方法,所以每一个数组都可以使用Array原型上的push等方法
    因为伪数组的构造器不是Array,当然不能使用Array原型上的push方法 
    现在数组有一个方法slice,这个方法每次都会返回一个新数组,如果不传参的话,返回的新数组的元素和原数组的元素是一模一样的
    让一个真正的数组直接从Array.prototype上执行slice方法,但是在“”里面的this换成咱们的伪数组,这样的话,就会返回一个元素和伪数组元素一样的真正数组了
    Array.prototype.slice = function(){
          Let arr = []
          for(var i = 0;i <this.length;i ++){
                arr.push(this[i])
    }
    return arr
    }
    let arr = [].slice.call(arg)
    Array.prototype.slice.call(arg)
  • 相关阅读:
    Django(一)
    web 框架
    图片
    day16
    day 15
    day14 HTML CSS
    day12
    day11
    python IO多路复用,初识多线程
    python socket
  • 原文地址:https://www.cnblogs.com/clearlove7icon/p/8056831.html
Copyright © 2011-2022 走看看