你对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的长度,常见于循环中对数组的遍历,比如:
- for(vari=0;i<arr.length;i++){
- 执行部分
- }
数组元素的访问:arr[index],其中index表示索引即数组基数,从0开始,共有arr.length个元素.比如:arr[0]访问第一个数组元素,arr[1]访问第二个数组元素....依次类推数组的操作方法:先概览下下面的这些操作数组常用的方法(13个)
- toString(),valueOf(),toLocalString(),join(),
- split(),slice(),concat(),
- pop(),push(),shift(),unshift(),sort(),splice()
#p# 下面逐一分析这些方法的功能和用法.
◆toString(),valueOf(),toLocalString():
功能:返回数组的全部元素
注:JavaScript数组名也可以返回整个数组
代码:
- varm=["am","bm","cm"];//用括号声明一个数组对象
- alert(m.toString());
- //toString()返回数组对象的所有内容,用逗号分割,即am,bm,cm
- alert(m.valueOf());//valueOf()也返回数组对象的所有内容
- alert(m.toLocaleString());
- //toLocaleString()也返回数组对象的所有内容,但有地区语言区别,暂不研究
- alert(m);//数组名也返回数组对象的所有内容
- varm=["am","bm","cm"];
- //用括号声明一个数组对象alert(m.toString());
- //toString()返回数组对象的所有内容,用逗号分割,即am,bm,cmalert(m.valueOf());
- //valueOf()也返回数组对象的所有内容alert(m.toLocaleString());
- //toLocaleString()也返回数组对象的所有内容,但有地区语言区别,暂不研究alert(m);
- //数组名也返回数组对象的所有内容
- 运行:<script>varm=["am","bm","cm"];alert(m.toString());
- alert(m.valueOf());alert(m.toLocaleString());</script>
◆join():
功能:把JavaScript数组各个项用某个字符(串)连接起来,但并不修改原来的数组
代码:
- varm=["am","bm","cm"];//用括号声明一个数组对象
- varn=m.join("---");//用---连接am,bm,cm.
- alert(m.toString());//m并没有被修改,返回am,bm,cm
- alert(n);//n是一个字符串,为am---bm---cm
- varm=["am","bm","cm"];
- //用括号声明一个数组对象varn=m.join("---");
- //用---连接am,bm,cm.alert(m.toString());
- //m并没有被修改,返回am,bm,cmalert(n);
- //n是一个字符串,为am---bm---cm
- 运行:<script>varm=["am","bm","cm"];varn=m.join("---");
- alert(m.toString());alert(n);</script>
◆split():
功能:把一个字符串按某个字符(串)分割成一个数组,但不修改原字符串
代码:
- varstr="Ilovemaomao,Iamcaolvchong";
- vararr=str.split("o");//按字符o把str字符串分割成一个数组
- alert(arr);//输出整个数组
- varstr="Ilovemaomao,Iamcaolvchong";
- vararr=str.split("o");
- //按字符o把str字符串分割成一个数组alert(arr);
- //输出整个数组
- 运行:<script>varstr="Ilovemaomao,Iamcaolvchong";
- vararr=str.split("o");alert(arr);</script>
◆slice():
功能:返回某个位置开始(到某个位置结束)的数组部分,不修改原JavaScript数组
代码:
- varm=["am","bm","cm","dm","em","fm"];
- varn=m.slice(2);//返回第二个元素bm后面的元素,即cm,dm,em,fm
- varq=m.slice(2,5);//返回第二个元素后到第五个元素,即cm,dm,em
- alert(n);
- alert(q);
- varm=["am","bm","cm","dm","em","fm"];
- varn=m.slice(2);
- //返回第二个元素bm后面的元素,即cm,dm,em,fmvarq=m.slice(2,5);
- //返回第二个元素后到第五个元素,即cm,dm,emalert(n);alert(q);
- 运行:<script>varm=["am","bm","cm","dm","em","fm"];
- varn=m.slice(2);varq=m.slice(2,5);alert(n);alert(q);</script>
#p#JavaScript数组对象的栈操作:
push():数组末尾添加一个项
pop():删除数组最后一个项
代码:
- varm=["am","bm","cm","dm","em","fm"];
- m.push("gm");//在数组末尾添加元素gm
- alert(m);
- m.pop();//删除数组最后一个元素gm
- alert(m);
- varm=["am","bm","cm","dm","em","fm"];m.push("gm");
- //在数组末尾添加元素gmalert(m);m.pop();
- //删除数组最后一个元素gmalert(m);
- 运行:<script>varm=["am","bm","cm","dm","em","fm"];
- m.push("gm");alert(m);m.pop();alert(m);</script>
JavaScript 数组对象的队列操作:
unshift():数组头添加一个项
shift():删除数组第一个项
代码:
- varm=["am","bm","cm","dm","em","fm"];
- m.unshift("gm");//在数组第一个元素位置添加元素gm
- alert(m);
- m.shift();//删除数组第一个元素gm
- alert(m);
- varm=["am","bm","cm","dm","em","fm"];m.unshift("gm");
- //在数组第一个元素位置添加元素gmalert(m);m.shift();
- //删除数组第一个元素gmalert(m);
- 运行:<script>varm=["am","bm","cm","dm","em","fm"];m.unshift("gm");
- alert(m);m.shift();alert(m);</script>
◆ sort():
功能:数组按字符的ASCII码进行排序,修改数组对象
注:即便是数字数组,也将转化为字符串来进行比较排序
代码:
- varm=["am","fm","gm","bm","em","dm"];
- m.sort();//按字母序排序
- alert(m);
- varm=["am","fm","gm","bm","em","dm"];m.sort();
- //按字母序排序alert(m);
- 运行:<script>varm=["am","fm","gm","bm","em","dm"];
- m.sort();alert(m);</script>
#p# ◆concat():
功能:在JavaScript数组尾添加元素,但不修改数组对象
代码:
- varm=["am","bm"]
- varn=m.concat("cm");//添加一项cm,并且赋予新数组对象
- alert(m);//原数组没有被修改
- alert(n);//输出新数组对象
- varm=["am","bm"]varn=m.concat("cm");
- //添加一项cm,并且赋予新数组对象alert(m);
- //原数组没有被修改alert(n);//输出新数组对象
- 运行:<script>varm=["am","bm"];varn=m.concat("cm");
- alert(m);alert(n);</script>
◆splice():在数组的任意位置进行添加,删除或者替换元素,直接修改数组对象
细节:
splice()有三个参数或三个以上参数,前两个是必须的,后面参数是可选的
进行添加:splice(起始项,0,添加项)
进行删除:splice(起始项,要删除的项个数)
进行替换:splice(起始项,替换个数,替换项)这个其实是添加删除的共同结果
代码:
- varm=["am","bm"]
- m.splice(1,0,"fm","sm");//在第一项后面添加fm和sm,返回am,fm,sm,bm
- alert(m);
- m.splice(2,1);//删除第二项后面一项(即第三项sm,返回am,fm,bm)
- alert(m);
- m.splice(2,1,"mm");//替换第二项后面一项(即第三项,返回am,fm,mm)
- alert(m);
- varm=["am","bm"]m.splice(1,0,"fm","sm");
- //在第一项后面添加fm和sm,返回am,fm,sm,bmalert(m);m.splice(2,1);
- //删除第二项后面一项(即第三项sm,返回am,fm,bm)alert(m);
- m.splice(2,1,"mm");
- //替换第二项后面一项(即第三项,返回am,fm,mm)alert(m);
- 运行:<script>varm=["am","bm"];
- m.splice(1,0,"fm","sm");alert(m);m.splice(2,1);
- alert(m);m.splice(2,0,"mm");alert(m);</script>
【编辑推荐】
- JavaScript数组元素删除问题解决方案
- 深入剖析JavaScript中split()方法的使用
- JavaScript数组元素删除问题解决方案
- Javascript操作img解决网站提交数据异常问题
- JavaScript调试工具解决IE6等多版本共存问题