JS学习第九天----数组
数组
前面说过,数组也是对象的一种,记得吗?啥叫数组我就不说了,数组的那些基本特征,在内存中怎样存储,在堆上还是栈上?还是其它.忘记了的自己脑补.不说了,那种编程语言都有数组,尽管数组并非非常好用,并且确定无数,可是数据是基础,相信每一个人都是在解除了数组以后才接触的更高级的容器,容器都是有哪些比較好用的?那种容器相应着那种不同的数据更为合适?自己脑补.
今天说的是JS中的数组(Array)
先看实例:创建数组
<script>
var array=new Array();
array[0]="syx";
array[1]="nan";
array[2]=22;
for(i =0;i<array.length;++i)
{
document.write(array[i]+"<br/>")
}
</script>
使用for/in遍历数组:
for(x in array)
{
document.write(array[x]+"<br/>");
}
合并两个数组:用法concat
<script>
var arr1=new Array(3);
var arr2=new Array(3);
arr1[0]="syx";
arr1[1]="nan";
arr1[2]=22;
arr2[0]="zsf";
arr2[1]="nv";
arr2[2]=22;
document.write(arr1.concat(arr2));//document是个什么东西?这个就相当于一条输出语句,明确?
</script>
用数组的元素组成字符串:使用join()方法
<script>
var arr = new Array(3);
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr.join());//默认情况下使用逗号作为分隔符
document.write("<br />");
document.write(arr.join("."));//这里指定了分隔符,使用点号(.)
</script>
使用sort排序数组:
<script type="text/javascript">
//这是使用sort方法给数字数组排序
function sortNumber(a,b)
{
return a-b;
}
var arr=new Array(6);
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"
document.write(arr + "<br />");//这是没排序的结果
document.write(arr.sort(sortNumber));//这是排序后的结果
document.write("<br/>");
document.write("<br/>");
document.write("<br/>");
//使用sort方法给字符串数组排序
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"
document.write(arr + "<br />")
document.write(arr.sort())
//俺也不知道你注意到了没有,字符串的默认排序是依照字典数排序的
</script>
以上仅仅是列举出了一些经常使用的方法.以下具体说一下Array数组的属性和方法
Array对象
Array对象用于在单个的变量中存储多个值.
创建Array对象的语法,假设你注意到我前面创建数组的方式,说明你是个有心人.
事实上吧,创建数组的方法有三种:
1.new Array();
2.new Array(size);
3.new Array(element0,,element1,...elementn);
參数
參数size是指定数组元素的个数.返回的数组,length字段将被设为size的值.
參数element1...elementn是參数列表.当使用这些參数来调用构造函数Array()时,新创建的数组的元素就会被初始化为这些值.他的length字段也会被设置值为參数的个数.
返回值
返回新创建并被初始化了的数组.
假设调用构造函数Array()时没有使用參数,那么返回的数组为空,length字段为0
当调用构造函数时值传递给它一个数字參数,该构造函数就返回具有制定个数,元素为undefined的数组.
当其它參数调用Array()时,该构造函数将用參数指定的值初始化数组.
当把构造函数作为函数调用,,不适用new运算符时,他的行为有使用new运算符调用它时的行为全然一样.
Array对象属性
属性名 |
描写叙述 |
constructor |
返回对创建此对象的数组函数的引用 |
length |
设置或返回数组中严肃的数组 |
prototype |
使你有能力向对象加入属性和方法 |
Array对象方法
方法名 |
描写叙述 |
concat() |
连接两个或很多其它的数组,并返回结果 |
join() |
把数组的全部元素放入一个字符串,元素通过指定的分隔符进行切割 |
pop() |
删除并返回数组的最后一个元素 |
push() |
向数组的末尾加入一个或很多其它元素,并返回新的长度 |
reverse() |
颠倒数组中元素的顺序 |
shift() |
删除并返回数组的第一个元素 |
slice() |
从某个已有的数组返回选定的元素 |
sort() |
对数组的元素进行排序 |
splice() |
删除元素,并向数组加入新的元素 |
toSource() |
返回该对象的源码 |
toString() |
把数组转换为字符串,并返回结果 |
toLocaleString() |
把数组转换为本地数组,并返回结果 |
unshift() |
向数组的开头加入一个或很多其它元素,并返回长度 |
valueOf() |
返回数组对象的原始值 |
定义数组
数组对象用来在单独的变量名中存储一系列的值.
我们使用newkeyword来创建数组对象.案例:
var array =new Array()
有两种向数组赋值的方法(你能够加入随意多的值,就像你能够定义你须要的人一多的变量一样).
第一种:
var array=new Arrau()
array[0]=1;
array[1]=2;
array[2]=3;
也能够使用一个整数自变量来控制数组的容量:
var array=new Array(3)
array[0]=1;
array[1]=2;
array[2]=3;
另外一种:
var mycars=new Array("Saab","Volvo","BMW")
注意:假设你须要在数组内指定数值或者逻辑值,那么变量类型应该是数值或布尔变量,而不是字符变量.
訪问数组
通过指定数组名以及索引號码,你能够訪问某个特定的元素.
案例:
document.write(array[0]);
输出:Saab
改动数组中的值
假设改动已有数组中的值,仅仅要想指定下标加入一个新值就可以:
array[0]=”hahaha”;
測试代码:
document.write(array[0]);
输出为:hahaha