数组操作

本文介绍了JavaScript中几种常见的数组合并方法,包括concat方法、Array.prototype.push.apply的应用及arguments对象的处理方式。此外,还探讨了如何准确检测对象类型及Array与Array.of的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 合并数组

    var arr = [1,2,3,4],arr1 = [12,32,34,,45]

    //concat方法
    var newArr = arr.concat(arr1)   //newArr = [1,2,3,4,12,32,34,,45]

    //Array.prototype.push.apply
    Array.prototype.push.apply(arr,arr1)  //arr = [1,2,3,4,12,32,34,,45]

    //apply
    arr.push.apply(arr,arr1)   //arr = [1,2,3,4,12,32,34,,45]
     
  2. Array.prototype.slice.call(arguments,1)
     

     Array.prototype.slice.call(arguments,1)该语句涉及两个知识点。

    arguments是一个关键字,代表当前参数,在javascript中虽然arguments表面上以数组形式来表示,但实际上没有原生数组slice的功能,这里使用call方法算是对arguments对象不完整数组功能的修正。

    slice返回一个数组,该方法只有一个参数的情况下表示除去数组内的第一个元素。就本上下文而言,原数组的第一个参数是“事件名称”,具体像“click”,"render"般的字符串,其后的元素才是处理函数所接纳的参数列表。

  3. 检测对象类型
    Object.prototype.toString.call();

    那为什么不直接用obj.toString()呢?
    这是因为toString为Object的原型方法,而Array ,function等类型作为Object的实例,都重写了toString方法。不同的对象类型调用toString方法时,根据原型链的知识,调用的是对应的重写之后的toString方法(function类型返回内容为函数体的字符串,Array类型返回元素组成的字符串.....),而不会去调用Object上原型toString方法(返回对象的具体类型),所以采用obj.toString()不能得到其对象类型,只能将obj转换为字符串类型;因此,在想要得到对象的具体类型时,应该调用Object上原型toString方法。
     
  4. Array与Array.of
    Array参数只有一个,那么它规定的是数组长度,多个参数,是规定数组元素。。
    Array.of()方法,无论参数是一个还是多个,都是规定的数组元素。 //方法创建一个具有可变数量参数的新数组实例,而不考虑参数的数量或类型
    var arr = Array(3)  //arr.length =3 创建一个长度为3的数组,每一个数组元素是undefined。
    var arr = Array.of(3) //arr = [3] 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值