码迷,mamicode.com
首页 > 移动开发 > 详细

apply方法别有他用!

时间:2016-09-25 12:04:32      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:

首先是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中,表达式返回值是数组的长度。

apply方法别有他用!

标签:

原文地址:http://www.cnblogs.com/libin-1/p/5905586.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!