JS数组
javascript数数组操作大全~组方法组组
1. shift,组除原组第一组~返回组除元素的组~如果组组空组返回数并数undefined var a = [1,2,3,4,5];
var b = a.shift(); //a,[2,3,4,5] b,1
2. unshift,添加到原组组组~返回组的组度将参数数并数 var a = [1,2,3,4,5];
var b = a.unshift(-2,-1); //a,[-2,-1,1,2,3,4,5] b,7 注,在IE6.0下组组返回组组组undefined~FF2.0下组组返回组组7~所以组方法的返回组不可~需要用返回组个靠组可用splice代替本方法使用。来
3. pop,组除原组最后一组~返回组除元素的组~如果组组空组返回数并数undefined
var a = [1,2,3,4,5];
var b = a.pop(); //a,[1,2,3,4] b,5
4. push,添加到原组末尾~返回组的组度将参数数并数 var a = [1,2,3,4,5];
var b = a.push(6,7); //a,[1,2,3,4,5,6,7] b,7
5. concat,返回一新组~是添加到原组中成的个数将参数数构 var a = [1,2,3,4,5];
var b = a.concat(6,7); //a,[1,2,3,4,5] b,[1,2,3,4,5,6,7]
6. splice(start,deleteCount,val1,val2,...),从start位置组始组除deleteCount组~组位并从
置起入插val1,val2,...
var a = [1,2,3,4,5];
var b = a.splice(2,2,7,8,9); //a,[1,2,7,8,9,5] b,[3,4] var b = a.splice(0,1); //同shift
a.splice(0,0,-2,-1); var b = a.length; //同unshift var b = a.splice(a.length-1,1); //同pop
a.splice(a.length,0,6,7); var b = a.length; //同push
7. reverse,组反序将数
var a = [1,2,3,4,5];
var b = a.reverse(); //a,[5,4,3,2,1] b,[5,4,3,2,1]
8. sort(orderfunction),按指定的组组组组行排序参数数 var a = [1,2,3,4,5];
var b = a.sort(); //a,[1,2,3,4,5] b,[1,2,3,4,5]
9. slice(start,end),返回原组中指定组始下组到组束下组之组的组组成的新组从数数 var a = [1,2,3,4,5];
var b = a.slice(2,5); //a,[1,2,3,4,5] b,[3,4,5]
10. join(separator),组的元素组起一字符串~以将数个separator组分隔符~省略的组组用默组用逗组分隔符号
var a = [1,2,3,4,5];
var b = a.join("|"); //a,[1,2,3,4,5] b,"1|2|3|4|5"
数组是JavaScript提供的一部组象~是一组准的集合~我组可以添加个内它个(push)、组除(shift)里面元素~我组组可以通组for循组遍组里面的元素~那组除了组我组在数JavaScript里组可以有组的集合组?
由于JavaScript的组言特性~我组可以向通用组象组组添加和组除性。所以属Object也可以看成是JS的一组特殊的集合。下面比组一下Array和Object的特性:
Array:
新建:var ary = new Array(); 或 var ary = [];
增加:ary.push(value);
组除:delete ary[n];
遍组:for ( var i=0 ; i < ary.length ; ++i ) ary[i];
Object:
新建:var obj = new Object(); 或 var obj = {};
增加:obj[key] = value; (key组string)
组除:delete obj[key];
遍组:for ( var key in obj ) obj[key];
上面的比组可以看出从Object完全可以作组一集合使用~在使用个来Popup窗口组建无限组Web组菜组(3)中我介组组Eric组组的那个__MenuCache__~也就是一模组的集合组象。它个
如果我组要在Array中组索出一指定的组~我组需要遍组整组个个数:
代组,
var keyword = ;
for ( var i=0 ; i < ary.length ; ++i ) {
if ( ary[i] == keyword )
{
// todo
}
}
而我组在Object中组索一指定的个key的目~只需要是要使用条:
代组,
var key = '';
var value = obj[key];
// todo
Object的组特性可以用高效的组索个来Unique的字符串集合~遍组Array的组组组组度是O(n)~而遍组Object的组组组组度是O(1)。组然组于10000次集合的for组索代价也就十几ms~可是如果是1000*1000次组索或更多~使用Object的组组一下就组出了。在此之前我做了一体来个mapping~把100个Unique的字符mapping到1000个数字符串组上~耗组25-30s!后把来for遍组改成了Object模组的集合的成组引用~同组的据量数mapping~耗组组1.7-2s!!!
组于集合的遍组效率(从高到低):var value = obj[key]; > for ( ; ; ) > for ( in )。效率最差的就是for( in )了~如果集合组大~量不要使用尽for ( in )遍组。
本文档为【JS数组】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。