手机版

使用push.apply将数组追加到JS数组的问题

时间:2021-11-06 来源:互联网 编辑:宝哥软件园 浏览:

复制代码如下: a=new Array();b=新数组(125624);a.push.apply(a,b);上面的代码在mac的chrome下抛出了下面的异常。复制代码如下:未知范围错误:超过最大调用堆栈大小。如果数组改为b=新数组(125623);有一个小元素就好了。经过测试,其他浏览器也有大数组出错的问题,但是不同的浏览器有不同的临界值。搜索了http://stack overflow.com/questions/1374126/如何将数组追加到现有的JavaScript数组/17368101 # 17368101发现有人遇到这样的坑:复制代码如下: array . prototype . extend=function(other _ array){/*。您应该包含一个测试来检查other_array是否真的是数组*/other _ array . foreach(function(v){ this . push(v)},this);}给出的建议是老老实实使用forEach,这样不仅可以避免大数组的异常问题,从性能上来说也是最快的

这个坑给了我两点思考:1。一些奇特的用法,如a.push.apply(a,b);面试题用,装逼也可以。实战中,最好走比较诚实的路线,避免遇到异常和性能坑。比如玩几十个这样节点的少量3D网络拓扑spring布局示例就可以了。只有当你遇到真正大数据量的时候,比如这一个中HT for Web的这个3D大数据量性能例子,你才能测试出问题。2.当从斯达克沃夫洛那里寻找答案时,http://stackoverflow.com/questions/1374126不应该只关注那些投票最多的人。真理往往掌握在少数人手中。下图259票的答案是坑,34票是完美分析:

版权声明:使用push.apply将数组追加到JS数组的问题是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。