JavaScript之数组Array详解.docx
《JavaScript之数组Array详解.docx》由会员分享,可在线阅读,更多相关《JavaScript之数组Array详解.docx(9页珍藏版)》请在冰豆网上搜索。
![JavaScript之数组Array详解.docx](https://file1.bdocx.com/fileroot1/2022-10/24/862c4e95-9db3-4e13-b6fe-d23f03301f1b/862c4e95-9db3-4e13-b6fe-d23f03301f1b1.gif)
JavaScript之数组Array详解
JavaScript之数组(Array)详解
篇一:
Javascript数组及其操作
Javascript数组及其操作
1.如何创建数组
2.如何对数组进行操作(添加,删除,读取)
3.数组常见方法和属性
如何创建一个数组,一般地根据初始化设定简单分为3种:
1.单纯创建数组:
vararr=newArray();
要点:
用new关键字创建数组对象Array(),Array()对象是一个本地类,可以用new创建一个对象后使用
2.创建数组的同时规定数组大小:
vararr=newArray(10);//这里就创建了一个初始化大小为10的数组
注意:
当使用数组大小操作初始化大小时,数组会自动被撑大,不会像C语言那样发生错误.动态增长是js数组的一个性质.另外,js中支持最大数组长度为4294967295
3.直接初始化:
vararr=newArray("love","hate","pain");//这里就直接初始化了数组或vararr=["happy","cute","scare"];//括号也可以声明一个数组对象
当然,类似C语言,可以定义2维3维和多维的数组,例如:
varmyArray=newArray();
for(vari=0;i myArray[i]=newArray();
myArray[i][0]=Math.floor(Math.random()*10);
myArray[i][1]=Math.floor(Math.random()*10);
myArray[i][2]=Math.floor(Math.random()*10);
myArray[i][3]=Math.floor(Math.random()*10);
myArray[i][4]=Math.floor(Math.random()*10);
myArray[i][5]=Math.floor(Math.random()*10);
myArray[i][6]=Math.floor(Math.random()*10);
myArray[i][7]=Math.floor(Math.random()*10);
myArray[i][8]=Math.floor(Math.random()*10);
}
myArray.sort(function(x,y)...{
return
(x[0]==y[0])?
((x[4]==y[4])?
(x[8]-y[8]):
(x[4]-y[4])):
(x[2]-y[2])});
for(vari=0;i document.write(myArray[i].join(",")+"
");
}
数组的属性:
length
arr.length返回数组arr的长度,常见于循环中对数组的遍历,比如:
for(vari=0;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()
下面逐一分析这些方法的功能和用法.
toString(),valueOf(),toLocalString():
功能:
返回数组的全部元素
注:
数组名也可以返回整个数组
代码:
varm=["am","bm","cm"];//用括号声明一个数组对象
alert(m.toString());//toString()返回数组对象的所有内容,用逗号分割,即am,bm,cm
alert(m.valueOf());//valueOf()也返回数组对象的所有内容
alert(m.toLocaleString());//toLocaleString()也返回数组对象的所有内容,但有地区语言区别,暂不研究
alert(m);//数组名也返回数组对象的所有内容
join():
功能:
把数组各个项用某个字符(串)连接起来,但并不修改原来的数组
代码:
varm=["am","bm","cm"];//用括号声明一个数组对象
varn=m.join("---");//用---连接am,bm,cm.
alert(m.toString());//m并没有被修改,返回am,bm,cm
alert(n);//n是一个字符串,为am---bm---cm
split():
功能:
把一个字符串按某个字符(串)分割成一个数组,但不修改原字符串
代码:
varstr="Ilovemaomao,Iamcaolvchong";
vararr=str.split("o");//按字符o把str字符串分割成一个数组alert(arr);//输出整个数组
slice():
返回某个位置开始(到某个位置结束)的数组部分,不修改原数组代码:
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);
数组对象的栈操作:
push():
数组末尾添加一个项
pop():
删除数组最后一个项
代码:
varm=["am","bm","cm","dm","em","fm"];
m.push("gm");//在数组末尾添加元素gm
alert(m);
m.pop();//删除数组最后一个元素gm
alert(m);
数组对象的队列操作:
unshift():
数组头添加一个项
shift():
删除数组第一个项
代码:
varm=["am","bm","cm","dm","em","fm"];
m.unshift("gm");//在数组第一个元素位置添加元素gm
alert(m);
m.shift();//删除数组第一个元素gm
alert(m);
sort():
数组按字符的ASCII码进行排序,修改数组对象
注:
即便是数字数组,也将转化为字符串来进行比较排序
代码:
varm=["am","fm","gm","bm","em","dm"];
m.sort();//按字母序排序
alert(m);
concat():
在数组尾添加元素,但不修改数组对象
代码:
varm=["am","bm"]
varn=m.concat("cm");//添加一项cm,并且赋予新数组对象
alert(m);//原数组没有被修改
alert(n);//输出新数组对象
splice():
在数组的任意位置进行添加,删除或者替换元素,直接修改数组对象细节:
splice()有三个参数或三个以上参数,前两个是必须的,后面参数是可选的进行添加:
splice(起始项,0,添加项)
进行删除:
splice(起始项,要删除的项个数)
进行替换:
splice(起始项,替换个数,替换项)这个其实是添加删除的共同结果代码:
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);
JavaScript数组操作函数
join(delimiter):
把数组中各个元素使用分隔符(delimiter)拼成字符串
concat(array1,array2,...):
合并数组,对原数组不影响,只是返回合并后的新数组
pop():
删除并返回最后一个元素
push(element1,element2,...):
在数组末尾追加元素
shift():
删除并返回第一个元素
unshift(element1,element2,...):
在数组开始位置添加元素
reverse():
将数组元素顺序首尾反转
sort(function):
给数组排序
如果不给参数,默认按字符排序(所有元素是数字也不会按数字排序的)
参数必须是一个函数,类似function(a,b){},在函数中判断a,b的大小,a>b返回正数,a slice(start,end):
返回一个新的数组,将start开始,到end结束(不包括end)之间的元素复制到新数组中
splice(start,count,replaceElement1,replaceElement2,...):
删除或者替换数组元素,从start开始,对count个元素进行删除或替换
如果提供replaceElement参数则进行替换,否则进行删除操作,被替换的元素个数和replaceElements的个数不必相等
返回一个数组,包含被删除或替换掉的元素
判断是否数组的方法
vararrayVar=["aaa","bbb","ccc"];
varnonArrayVar={length:
4,otherAttribute:
"attr"};
document.write(arrayVar.constructor==Array);
document.write("
");
document.write(nonArrayVar.constructor==Array);
结果是true,false
grep、map
Perl语言带出来的东西,jQuery实现selector时用了这种方式
grep
对数组的grep操作,指类似这样的代码:
ArraynewArray=grep(condition,oldArray),这个操作将对oldArray数组的每个元素进行遍历,如果当前处理元素符合条件condition,则加入到返回数组中jQuery中的grep类似这样:
function(elems,callback),elems是DOM元素集合,callback是实现selector的一些表达式函数,如果callback返回true则表明当前处理的元素符合selector表达式
篇二:
javaScript基础之——数组
javaScript基础