js巧用apply方法实现数组最值以及合并

尽管js的apply方法在平常的使用中并不多见,但是在某些地方使用的还是很有帮助性的,这里就和大家说两个比较实用的例子:
1.数组最大最小值

求数组中的最大最小值,js有相应的方法:Math.min(),Math.max(),但是这两个方法有个不方便的地方就是其参数不能是数组,而是单个元素值,即(para1,para2,para3....)。所以使用就没有那么方便了,但是我们可以使用这个方法:

var min = Math.min.apply(null, arr);
var max = Math.max.apply(null, arr);

 2.数组合并。数组的合并也和求最值一样,我们可以使用简单的push(para1);进行循环push.但我们也可以使用比较简单的方法: 

Array.prototype.push.apply(arrA, arrB); //将数组arrB push到数组 arrA中。

  

这里要解释下能这么用的原因。从另外一个关于apply的文章,我们可以了解到,function的apply方法的第二个参数是一个数组集合, 在调用的时候,他需要的不是一个数组,但是为什么他给我一个数组我仍然可以将数组解析为一个一个的参数,这个就是apply的一个巧妙的用处,可以将一个数组默认的转换为一个参数列表([param1,param2,param3] 转换为 param1,param2,param3) ,所以利用变个特性,我们就实现了上面的功能。
下面是我的完整代码,方便大家学习了解。

$('#getMinMax').click(function () {
       var arr = [1, 2, 3, 4, 5, 6, 7, 0.9, 11];
       var min = Math.min.apply(null, arr);
       var max = Math.max.apply(null, arr);
       alert('min:' min '  max:' max);
   });

   $('#unite').click(function () {
       var arrA = ['1', '2', '3'];
       var arrB = [4, 5, 6];
       Array.prototype.push.apply(arrA, arrB);
       var str = 'newArr:[';
       for (var i = 0; i < arrA.length; i  ) {
           str  = arrA[i]   ',';
       }
       str = str.substr(0, str.length - 1) ']';
       alert(str);
   });

  

转载于:https://www.cnblogs.com/airbreak/p/4595424.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值