zoukankan      html  css  js  c++  java
  • apply方法别有他用!

    首先是apply()一个很强大的功能——能将一个数组默认转化为参数列表!!!

    应用:

    1.求出一个数组中的最大值

    var arr= [1, 3, 3, 6];
        var max =Math.max.apply(null,arr);
        alert(max);    // 6

    Math.max()方法接受多个参数,但是不接受数组,所以直接Math.max(arr)是无法达到效果的,由apply()将数组转化成参数列表进行操作。

    2.合并数组

    ①使用concat()方法

    var arr1 = [1, 3, 3, 6];
        var arr2 = [2, 4, 5, 6];
    
        var arr = arr1.concat(arr2);
        alert(arr);    // [1,3,3,6,2,4,5,6]

    concat()方法不会改变原数组,只能返回一个新的数组。

    ②循环遍历插入

    复制代码
    var arr1 = [1, 3, 3, 6];
        var arr2 = [2, 4, 5, 6];
        var arr2Len = arr2.length;
    
        for(var i=0; i<arr2Len; i++){
            arr1.push(arr2[i]);
        }
        alert(arr1);    // [1,3,3,6,2,4,5,6]
    复制代码

    ③apply()方法

    复制代码
    var arr1 = [1, 3, 3, 6];
        var arr2 = [2, 4, 5, 6];
    
        var arr = Array.prototype.push.apply(arr1, arr2);
        alert(arr);      //8
        alert(arr1);     // [1,3,3,6,2,4,5,6]
    复制代码

    直接将arr2中的内容插入到arr1中,表达式返回值是数组的长度。

  • 相关阅读:
    sqlilab less19-less22
    sqlilab less11-less18
    逆向——序列号相关总结
    xctf攻防世界——crackme writeup
    ESP定律脱壳——NsPack3.x脱壳
    避免全局变量漫天飞
    C语言实现队列
    STM32中的C语言知识点
    超时事件时间戳
    STM32-电源控制、低功耗模式
  • 原文地址:https://www.cnblogs.com/libin-1/p/5905586.html
Copyright © 2011-2022 走看看