js apply 实现原理,jquery apply用法

js apply 实现原理,jquery apply用法,JS中apply()的应用实例分析

本文主要介绍了apply()在JS中的应用,并结合实例分析了使用apply()操作数组的相关技巧。有需要的可以参考一下。

本文介绍了apply()在JS中的应用。分享给你,供你参考,如下:

让我们从Math.max()函数开始。Math.max之后可以接收任何参数,最后返回所有参数的最大值。

例如:

alert(Math.max(5,8));//8

alert(Math.max(5,7,3,1,9,2));//9

但在很多情况下,我们需要找到数组中最大的元素。

例如:

/*

*找出数组中最大的数字

*/

var arr=[1,4,9,6];

//alert(math . max(arr));//NaN,这种用法不正确。

函数最大值(arr){

var arrLen=arr.length

var max value=arr[0];

for(var I=0;iarrLeni ){

var maxValue=Math.max(maxValue,arr[I]);

}

返回maxValue

}

alert(max(arr));//9

上面写的很麻烦,效率很低。让我们用apply()试试。

/*

*用apply()找到数组中的最大数字

*/

var arr=[1,4,9,6];

函数getMax1(arr){

return Math.max.apply(Math,arr);//第一个参数也可以用this或null填充

}

alert(get max 1(arr));//9

这两段代码达到了相同的效果,但是getMax1()是优雅、简洁和高效的。

比如数组的push方法。

/*

*将两个数组合并成一个数组。

*/

var arr1=[1,3,4];

var arr2=[6,7,8];

arr 1 . push(arr 2);这样不行。你得到的是[1,3,4,[6,7,8]]。因为push方法不提供push的数组,但是提供push(param1,param2…)

可以将arr2展开,然后一个一个的推送到arr1中(当然也可以使用arr1.concat(arr2),但是concat方法并不改变arr1本身)。

var arr len=arr 2 . length;

for(var I=0;iarrLeni ){

arr 1 . push(arr 2[I]);

}

但是通过apply(),事情变得非常简单。

array . prototype . push . apply(arr 1,arr 2);

console . log(arr 1);//1,3,4,6,7,8

原理:arr1调用push方法,参数是应用数汇编的一组参数表。

看到这里,你心里是不是在想:有必要这么麻烦吗?(恶心的表情)js明明有强大的方法concat,concat()方法是用来连接两个或多个数组的。此方法不会更改现有数组,而只会返回所连接数组的副本。如下

var arr1=新数组(' 1 ',' 3 ',' 4 ');

var arr2=新数组(' 6 ',' 7 ',' 8 ');

console . log(arr 1 . concat(arr 2));//1,3,4,6,7,8

console . log(arr 1);//1,3,4

console . log(arr 2);//6,7,8

其实我想说,如果真的需要数组链接,当然要用concat。使用apply只是介绍如何使用,而不仅仅是如何使用。

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun来测试上述代码的运行效果。

更多JavaScript相关内容请参考我们的专题:《JavaScript数组操作技巧总结》、《JavaScript字符与字符串操作技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript数学运算用法总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript查找算法技巧总结》和《JavaScript错误与调试技巧总结》。

希望这篇文章对大家的JavaScript编程有所帮助。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 使用jquery实现图片轮播效果如何,jQuery图片轮播
  • 使用jquery实现图片轮播效果如何,jQuery图片轮播,使用jQuery实现图片轮播效果
  • 举例说明jquery中each函数的使用,jquery each()
  • 举例说明jquery中each函数的使用,jquery each(),JQuery中each()的使用方法说明
  • 一篇文章带你了解jquery动画人物,一篇文章带你了解jquery动画制作
  • 一篇文章带你了解jquery动画人物,jquery的动画,一篇文章带你了解jQuery动画
  • trigger的用法总结,jquery trigger 传参数
  • trigger的用法总结,jquery trigger 传参数,jQuery中值得注意的trigger方法浅析
  • js hover 触发事件显示另一元素,js hover 触发事件,jQuery中多个元素的Hover事件解决方案
  • js apply 实现原理,jquery apply用法_1
  • js apply 实现原理,jquery apply用法,js中apply方法的使用详细解析
  • js apply 实现原理,jquery apply用法,JS中apply()的应用实例分析
  • jq获取radio选中的值,jquery radio 取值
  • jq获取radio选中的值,jquery radio 取值,Jquery获取radio选中值实例总结
  • jq控制css样式,jquery 样式
  • 留言与评论(共有 条评论)
       
    验证码: