问题:
jquery中大量用到了 array-like 的操作,不可避免遇到了数组嵌套的问题:
var x=[1,2,[3,4]];
这样的话,就不容易 each 循环操作了,所以需要转化为
var x=[1,2,3,4];
jquery 经常遇到的是 一维数组中添加元素,而元素又可能是一维数组的情况,如果每一步结果都转化位一维数组,则只需考虑两维数组的嵌套化问题,则
var x=[1,2,[3,4,[7,8]]];
不在考虑之列。(这种情况当然可以递归处理得到结果)
解决:
首先要看 apply
,它的第二个参数恰好要求是数组形式,则很幸运的处理了结果数组的第一层嵌套 :
function.apply(thisobj, args)
thisobj
The object to which function is to be applied. In the body of the function, thisobj becomes the value of the this keyword. If this argument is null, the global object is used.
args
An array of values to be passed as arguments to function.
Returns
Whatever value is returned by the invocation of function.
另一方面 ,数组的 concat 方法
,可能变长参数传入,并且参数为数组时自动循环参数数组操作:
concat( ) creates and returns a new array that is the result of concatenating each of its arguments to array. It does not modify array. If any of the arguments to concat( ) is itself an array, the elements of that array are concatenated, rather than the array itself.
结果代码:
于是就有了jquery map 中非常巧妙的平坦化操作 :
var x=[1,2,[3,4]];
alert(x.join("|"));
alert([].concat(x).join("|"));
//正确结果
alert(x.concat.apply([],x).join("|"));
分享到:
相关推荐
半导体材料系列:CMP–晶圆平坦化必经之路,国产替代放量中.pdf
半导体平坦化制造工艺技术概述.pptx
行业分类-设备装置-利用气体团簇离子束的固体表面平坦化方法及固体表面平坦化设备
行业分类-设备装置-用于提供可平坦化的工件支承件的方法、工件平坦化装置和卡盘
半导体材料系列:CMP–晶圆平坦化必经之路,国产替代放量中(2021)(17页).pdf
js代码-将一个非扁平化的数字类型的数组拍平的Generator实现
新的集成电路制造材料引入了多孔结构的低K介质,使得晶片的耐压力变小,须采用低压力完成平坦化。又因为现在国际主流的酸性抛光液逐渐暴露出诸多弊病,而新兴起的碱性抛光液又不仅能克服这些缺点,还有价格低廉等...
行业分类-设备装置-表面平坦化.zip
去除控制流平坦化的defalt脚本
行业分类-设备装置-芯片平坦化方法.zip
半导体平坦化制造工艺技术概述.pdf
行业分类-设备装置-半导体平坦化用研磨剂.zip
Optisystem+RFA(拉曼光纤放大器)增益平坦化
行业分类-设备装置-表面平坦化方法及半导体多层互连结构.zip
行业资料-建筑装置-带有平坦化引导通道的针织系统.zip
安卓逆向学习笔记之Frida 辅助分析ollvm控制流程平坦化
行业分类-设备装置-晶圆表面平坦化的方法.zip
行业分类-设备装置-包括平坦化导电层的制造半导体器件的方法.zip
行业文档-设计装置-晶圆的平坦化方法
行业分类-设备装置-用于使观看区域平坦化并使动态串扰最小化的裸眼立体3D图像显示装置