Javascript数组创建及其常见操作
创始人
2024-07-15 14:40:22
0

你对Javascript数组的操作是否熟悉,这里和大家简单分享一下,主要包括创建,添加,删除,读取,以及JavaScript数组常见方法和属性等内容,相信本文介绍一定会让你有所收获。

Javascript数组及其操作

本文介绍如下几个方面的内容:

1.如何创建JavaScript数组

2.如何对JavaScript数组进行操作(添加,删除,读取)

3.JavaScript数组常见方法和属性

◆如何创建一个数组,一般地根据初始化设定简单分为3种:

1.单纯创建JavaScript数组:

  vararr=newArray();

  要点:用new关键字创建数组对象Array(),Array()对象是一个本地类,可以用new创建一个对象后使用

2.创建JavaScript数组的同时规定数组大小:

  vararr=newArray(10);//这里就创建了一个初始化大小为10的数组

  注意:当使用数组大小操作初始化大小时,数组会自动被撑大,不会像C语言那样发生错误.动态增长是js数组的一个性质.另外,js中支持最大数组长度为4294967295

3.直接初始化:

  vararr=newArray("草履虫","爱","毛毛");//这里就直接初始化了数组或vararr=["草履虫","爱","毛毛"];//括号也可以声明一个数组对象, 当然,类似C语言,你也可以定义2维3维和多维的数组,这里不讨论。

JavaScript数组的属性:length

  arr.length返回数组arr的长度,常见于循环中对数组的遍历,比如:

  1. for(vari=0;i
  2. 执行部分  

  数组元素的访问:arr[index],其中index表示索引即数组基数,从0开始,共有arr.length个元素.比如:arr[0]访问第一个数组元素,arr[1]访问第二个数组元素....依次类推数组的操作方法:先概览下下面的这些操作数组常用的方法(13个)

  1. toString(),valueOf(),toLocalString(),join(),  
  2. split(),slice(),concat(),  
  3. pop(),push(),shift(),unshift(),sort(),splice() 

 #p# 下面逐一分析这些方法的功能和用法.

     ◆toString(),valueOf(),toLocalString():

  功能:返回数组的全部元素

  注:JavaScript数组名也可以返回整个数组

  代码:  

  1. varm=["am","bm","cm"];//用括号声明一个数组对象   
  2.  
  3.   alert(m.toString());
  4. //toString()返回数组对象的所有内容,用逗号分割,即am,bm,cm   
  5.  
  6.   alert(m.valueOf());//valueOf()也返回数组对象的所有内容   
  7.  
  8.   alert(m.toLocaleString());
  9. //toLocaleString()也返回数组对象的所有内容,但有地区语言区别,暂不研究   
  10.  
  11.   alert(m);//数组名也返回数组对象的所有内容   
  12.  
  13. varm=["am","bm","cm"];  
  14. //用括号声明一个数组对象alert(m.toString());  
  15. //toString()返回数组对象的所有内容,用逗号分割,即am,bm,cmalert(m.valueOf());  
  16. //valueOf()也返回数组对象的所有内容alert(m.toLocaleString());  
  17. //toLocaleString()也返回数组对象的所有内容,但有地区语言区别,暂不研究alert(m);  
  18. //数组名也返回数组对象的所有内容  
  19. 运行: 
  20.  

   ◆join():

  功能:把JavaScript数组各个项用某个字符(串)连接起来,但并不修改原来的数组

  代码:

  1.   varm=["am","bm","cm"];//用括号声明一个数组对象   
  2.  
  3.   varn=m.join("---");//用---连接am,bm,cm.   
  4.  
  5.   alert(m.toString());//m并没有被修改,返回am,bm,cm   
  6.  
  7.   alert(n);//n是一个字符串,为am---bm---cm   
  8.  
  9. varm=["am","bm","cm"];  
  10. //用括号声明一个数组对象varn=m.join("---");
  11. //用---连接am,bm,cm.alert(m.toString());  
  12. //m并没有被修改,返回am,bm,cmalert(n);  
  13. //n是一个字符串,为am---bm---cm  
  14. 运行: 

     ◆split():

  功能:把一个字符串按某个字符(串)分割成一个数组,但不修改原字符串

  代码:

  1.   varstr="Ilovemaomao,Iamcaolvchong";    
  2.  
  3.   vararr=str.split("o");//按字符o把str字符串分割成一个数组   
  4.  
  5.   alert(arr);//输出整个数组   
  6.  
  7. varstr="Ilovemaomao,Iamcaolvchong";  
  8. vararr=str.split("o");  
  9. //按字符o把str字符串分割成一个数组alert(arr);  
  10. //输出整个数组  
  11. 运行: 

  ◆slice():

        功能:返回某个位置开始(到某个位置结束)的数组部分,不修改原JavaScript数组

  代码:

  1.   varm=["am","bm","cm","dm","em","fm"];    
  2.  
  3.   varn=m.slice(2);//返回第二个元素bm后面的元素,即cm,dm,em,fm   
  4.  
  5.   varq=m.slice(2,5);//返回第二个元素后到第五个元素,即cm,dm,em   
  6.  
  7.   alert(n);    
  8.  
  9.   alert(q);   
  10.  
  11. varm=["am","bm","cm","dm","em","fm"];  
  12. varn=m.slice(2);  
  13. //返回第二个元素bm后面的元素,即cm,dm,em,fmvarq=m.slice(2,5);  
  14. //返回第二个元素后到第五个元素,即cm,dm,emalert(n);alert(q);  
  15. 运行: 

#p#JavaScript数组对象的栈操作:

  push():数组末尾添加一个项

       pop():删除数组最后一个项

  代码:

  1.   varm=["am","bm","cm","dm","em","fm"];    
  2.  
  3.   m.push("gm");//在数组末尾添加元素gm   
  4.  
  5.   alert(m);    
  6.  
  7.   m.pop();//删除数组最后一个元素gm   
  8.  
  9.   alert(m);   
  10.  
  11. varm=["am","bm","cm","dm","em","fm"];m.push("gm");  
  12. //在数组末尾添加元素gmalert(m);m.pop();  
  13. //删除数组最后一个元素gmalert(m);  
  14. 运行: 
  15.  
  16.  
  17.  

 JavaScript 数组对象的队列操作:

  unshift():数组头添加一个项

  shift():删除数组第一个项

  代码:

  1.   varm=["am","bm","cm","dm","em","fm"];    
  2.  
  3.   m.unshift("gm");//在数组第一个元素位置添加元素gm   
  4.  
  5.   alert(m);    
  6.  
  7.   m.shift();//删除数组第一个元素gm   
  8.  
  9.   alert(m);   
  10.  
  11. varm=["am","bm","cm","dm","em","fm"];m.unshift("gm");  
  12. //在数组第一个元素位置添加元素gmalert(m);m.shift();  
  13. //删除数组第一个元素gmalert(m);  
  14. 运行: 
  15.  
  16.  

       ◆ sort():

      功能:数组按字符的ASCII码进行排序,修改数组对象

  注:即便是数字数组,也将转化为字符串来进行比较排序

  代码:

  1.   varm=["am","fm","gm","bm","em","dm"];    
  2.  
  3.   m.sort();//按字母序排序   
  4.  
  5.   alert(m);   
  6.  
  7. varm=["am","fm","gm","bm","em","dm"];m.sort();  
  8. //按字母序排序alert(m);  
  9. 运行: 
  10.  

  #p# ◆concat():

       功能:在JavaScript数组尾添加元素,但不修改数组对象

  代码:

  1.   varm=["am","bm"]    
  2.  
  3.   varn=m.concat("cm");//添加一项cm,并且赋予新数组对象   
  4.  
  5.   alert(m);//原数组没有被修改   
  6.  
  7.   alert(n);//输出新数组对象   
  8.  
  9. varm=["am","bm"]varn=m.concat("cm");  
  10. //添加一项cm,并且赋予新数组对象alert(m);  
  11. //原数组没有被修改alert(n);//输出新数组对象  
  12. 运行: 
  13.  
  14.  

   ◆splice():在数组的任意位置进行添加,删除或者替换元素,直接修改数组对象

  细节:

  splice()有三个参数或三个以上参数,前两个是必须的,后面参数是可选的

  进行添加:splice(起始项,0,添加项)

  进行删除:splice(起始项,要删除的项个数)

  进行替换:splice(起始项,替换个数,替换项)这个其实是添加删除的共同结果

  代码:

  1.   varm=["am","bm"]    
  2.  
  3.   m.splice(1,0,"fm","sm");//在第一项后面添加fm和sm,返回am,fm,sm,bm   
  4.  
  5.   alert(m);    
  6.  
  7.   m.splice(2,1);//删除第二项后面一项(即第三项sm,返回am,fm,bm)   
  8.  
  9.   alert(m);    
  10.  
  11.   m.splice(2,1,"mm");//替换第二项后面一项(即第三项,返回am,fm,mm)   
  12.  
  13.   alert(m);   
  14.  
  15. varm=["am","bm"]m.splice(1,0,"fm","sm");  
  16. //在第一项后面添加fm和sm,返回am,fm,sm,bmalert(m);m.splice(2,1);  
  17. //删除第二项后面一项(即第三项sm,返回am,fm,bm)alert(m);
  18. m.splice(2,1,"mm");  
  19. //替换第二项后面一项(即第三项,返回am,fm,mm)alert(m);  
  20. 运行: 
  21.  

【编辑推荐】

  1. JavaScript数组元素删除问题解决方案
  2. 深入剖析JavaScript中split()方法的使用
  3. JavaScript数组元素删除问题解决方案
  4. Javascript操作img解决网站提交数据异常问题
  5. JavaScript调试工具解决IE6等多版本共存问题 

 


 

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...