您的位置:首页 > Web前端 > JavaScript

JS内置对象(Array数组对象)

2016-06-21 00:51 651 查看
[size=x-large]Array对象[/size]
[size=x-large]1.创建语法(2种):[/size]
[size=large]1.1语法1: [color=orange]var arr=new Array(参数);[/size][/color]

[list]
[*]括号内没有参数:表示创建了一个初始容量为0的数组,则返回数组为空,length为0;
[color=blue]new Array()[/color]
[*]括号内为一个number类型的参数:表示创建了一个初始容量为number的数组(number出现小数或负数时会报错),length为number数值,返回元素为undefined;
[color=blue]new Array(size)[/color]
[*]括号内为其他数量及类型的参数:表示创建一个包含参数为初始数据的数组;
[color=blue]new Array(element0,element1,....elementn)[/color][/list]
var arr1=new Array();
var arr2=new Array(3);
var arr3=new Array("gsl","hello",6,true);
console.debug("arr1:"+arr1);
console.debug("arr1.length:"+arr1.length)
console.debug("arr2:"+arr2[0]+" "+arr2[1]+" "+arr2[2]);
console.debug("arr2.length:"+arr2.length);
console.debug("arr3:"+arr3);
console.debug("arr3.length:"+arr3.length);

后台结果显示:


[size=large]1.2语法2: [color=orange]var arr=[初始数据列表];[/size][/color]
[list]
[*]容量看具体列表初始数据个数
[*]可存放不同数据类型
[/list]
var arr=[3,6,"lyf",true,"gsl",false,8];
console.debug(arr);

后台显示结果:



[size=x-large]2.属性[color=orange]length[/color]:[/size]
[list]
[*]设置或返回数组中元素的数目;
[*]不代表实际存储数据的数量,也不代表容量限制,可以给length赋值来改变数组容量
[/list]
[size=x-large]3.键值对:[/size]
[list]
[*] 数组不仅可以使用非负整数作为索引下标,也可以使用字符串作为下标,称之为“key"(键)
[*] key不会对length属性产生影响,所以不适合使用for循环变量,应使用for...in循环;且for...in会自动跳过undefined的数据
[/list]
var arr=new Array(3);
arr[0]="Amy";
arr[2]="Tom";
arr["name"]="gsl";
console.debug(arr);
console.debug(arr.length);
console.debug("=============")
for(var i=0;i<arr.length;i++)
{
console.debug(arr[i]);
}
console.debug("=============")
for(var index in arr)
{
console.debug(arr[index]);
}

后台运行结果:


[size=x-large]4. 排序方法:[color=orange]sort()[/color] [/size]
[list]
[*]默认按照字符顺序排列,非String类型会自动转换为String
[*]可以使用回调函数作为参数来指定排序规则,用于排序规则的函数定义要求:
接受2个形参,如果大于0表示参数1大于参数2(此时sort方法会交换2个数),小于0表示参数2大于参数1,等于0则表示2个参数相等;
[/list]
<script type="text/javascript">
var arr=["tony","Tommy","tom"];
console.debug("before sort:"+arr);
arr.sort();
console.debug("after sort:"+arr);
console.debug("---------");
var arr2=[10,3,"tt",45,7];
console.debug("before sort:"+arr2);
arr2.sort();//按照数值转换后的字符串排序
console.debug("after sort:"+arr2);

// 指定排序规则:一般约定俗成使用升序
arr2.sort(comp);
console.debug("after sort(comp):"+arr2);
// 用于排序规则的函数定义要求:接受2个形参,表示要比较的2个数
// 返回一个number:
// 如果大于0表示参数1大于参数2,
// 如果小于0表示参数2大于参数1,
// 如果等于0,表示2个参数相等
function comp(a,b){
return a-b;
}
//如果return改写成b-a,则表示降序
</script>

后台运行:


[size=x-large]4.反转方法:[color=orange]reverse()[/color] [/size]
将数据倒序排列,指位置,非字符大小
<script type="text/javascript">
var arr=new Array("tom","jerry","lucy","andy");
var arr1=[1,45,7,23,89,42,12];
arr.reverse();
console.debug("reverse:"+arr);
arr1.reverse();
console.debug("reverse:"+arr1);
</script>

后台结果:


[size=x-large]5.栈操作 [/size]
5.1 栈结构特点:先进后出(FILO)
5.2 [size=large][color=orange]push(newelement1,newelement2,...,newelementx);[/color][/size]
[*] newelement1必选,其余可选
[*]将数据添加到数组尾部,返回加入新数据后的数组的长度
5.3 [size=large][color=orange]pop();[/color][/size]
从数组尾部取一个数据,数组长度减1,返回数组最后一个数据(即被删除的数据)
5.4 举例:
<script type="text/javascript">
var arr=new Array("tom","jerry","lucy","andy");
console.debug(arr.push("tonny","joe"));
console.debug(arr);
console.debug(arr.pop());
console.debug(arr);
</script>

后台运行结果:

[size=x-large]6.拼接操作 [/size]
6.1 [size=large][color=orange]join(separator)[/color][/size]
[*]separator表示分隔符,可选,参数省略则默认用逗号作为分隔符
[*]join()方法把数组中的所有元素放入一个字符串
6.2 [size=large][color=orange]concat(array1,array2...arrayx)[/color][/size]
[list][*]array1...arrayx 可以是具体的值,也可以是数组对象,不过添加的是数组中的元素而非数组
[*]返回拼接而成的新的数组
[/list]
6.3 举例
<script type="text/javascript">
var arr1=new Array("tom","jerry","lucy","andy");
var arr2=new Array("tonny","joe");

var arrjoin1=arr1.join("-");
console.debug(arrjoin1);
var arrjoin2=arr1.join("");
console.debug(arrjoin2);

var arrconcat=arr1.concat(1,5,7,arr2,"ethan","peter")
console.debug(arrconcat);

</script>

后台显示结果:

[size=x-large]7.其他方法 [/size]
7.1 [size=large][color=orange]splice(index,howmany,item1,...,itemx)[/color][/size]
[*]index 支持负数,从数组结尾处开始规定位置,必选
[*]howmany 表示要删除数据的个数,为0则不删除,必选
[*]item 为可选,表示要增加的数据
[*]返回被删除的项目
[*]举例:
<script type="text/javascript">
var arr1=new Array("tom","jerry","lucy","andy","ethan");

var newarr1=arr1.splice(2,0);
console.debug(arr1);
console.debug(newarr1);

var newarr2=arr1.splice(2,1);
console.debug(arr1);
console.debug(newarr2);

var newarr3=arr1.splice(2,1,"item1","item2","item3");
console.debug(arr1);
console.debug(newarr3);
</script>

后台结果:

7.2 [size=large][color=orange]slice(start,end)[/color][/size]
[*]从已有数组中返回选定的元素,从start开始,到end下标的前一个元素
[*]start 表示起始位置,可倒数,必选
[*]end 表示结束位置,可倒数,可选,若没有指定结束位置,则默认到最后
[*]举例
<script type="text/javascript">
var arr1=new Array("tom","jerry","lucy","andy","ethan");
var arr2=new Array("tonny","joe","peter","ben");

var newarr1=arr1.slice(1,3);
console.debug(arr1);
console.debug(newarr1);

var newarr2=arr2.slice(1,-1);
console.debug(arr2);
console.debug(newarr2);

</script>

后台结果:

7.3 shift()/unshift()
[*][size=large][color=orange]shift()[/color][/size]删除并返回数组的第一个元素
[*] [size=large][color=orange]unshift()[/color][/size]向数组的[color=red]开头(与push不同,push是在尾部)[/color]添加一个或更多元素,并返回新的长度
[*]举例:
<script type="text/javascript">
var arr1=new Array("tom","jerry","lucy","andy","ethan");

var newarr= arr1.shift();
console.debug(arr1);
console.debug(newarr);

var newlength=arr1.unshift("peter","amy");
console.debug(arr1);
console.debug(newlength);
</script>

后台结果:

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: