1.什么是数组?
存储一对变量,内存中连续存储多个数据的存储空间,在统一取名字(连续存储方便维护和查询)
2.什么时候使用数组?
连续存储多个数据,必须使用数组。
3如何创建数组?
(1).var arr =new Aarray(6)//表示创建一个元素数为6的数组,()里面的数字表示数组的长度;
(2).var=[ ];//表示创建一个空数组;数组[ ]里可以填写元素(不区分数据类型,不限制元素个数,不限制下标越界)
例:创建一个元素个数为30;但不知道元素内容的数组----var arr=new Array(30);
4.下标
如何访问数组中的某一个元素:下标--数组中唯一标识元素存储位置的序号,默认从从零开始
var arr=[1,2,3]; arr[0]=1; arr[1]=2; arr[2]=3; arr[4]=undefind (下标越界取值不报错,返回undefined);
5.数组属性length
arr.length表示数组的长度
例题:获取数组中元素的最后一个最后一个下标:console.log(arr.(length-1));
6.删除
arr=[0,1,2,3,1,4]
arr[0]=1;arr=[1,1,2,3,1,4];
(arr.length=5)--->只能显示到数组前5位;
8.array原理
console.dir 查看数据类型 console.log()查看数据的值
引用数据类型:数据无法保存在变量的数据类型,保存的是应用地址,数据就是应用的类型。
为什么不能直接保存数组?解答:一个变量只能保存一个值,应用数据类型往往能保存多个值,所以就在Windows外,创建存储的空间,每个存储空间都有为一个地址。
应用类型:按值转递,传递的是地址。
9.数组的遍历
运用for循环来输出数组中所有的元素。
10.关联数组和索引数组的区别:
关联数组可以自定义下标名称的数组--->让每个数组都有明确的意义--->目的:让每个数据dou
11.数组的API
<1>concat() 方法用于连接两个或多个数组。
该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。
语法 arrayObject.concat(arrayX,arrayX,......,arrayX)
例题:var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
var arr2 = new Array(3)
arr2[0] = "James"
arr2[1] = "Adrew"
arr2[2] = "Martin" document.write(arr.concat(arr2)
)
输出:George,John,Thomas,James,Adrew,Martin
<2>
join() 方法用于把数组中的所有元素放入一个字符串。
元素是通过指定的分隔符进行分隔的。
语法 arrayObject.join(separator)
例题:var arr = new
Array(3) arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr.join(".")
)
输出:George.John.Thomas
<3>push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
语法 arrayObject.push(newelement1,newelement2,....,newelementX)
例题:var arr = newArray(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr + "<br />")
document.write(arr.push("James")
+ "<br />")
document.write(arr)
输出:George,John,Thomas
4
George,John,Thomas,James
<4>shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
语法 arrayObject.shift()
例题:var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr + "<br />")
document.write(arr.shift()
+ "<br />")
document.write(arr)
输出:George,John,Thomas
George
John,Thomas
<5>reverse() 方法用于颠倒数组中元素的顺序。
语法 arrayObject.reverse()
<6>push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
语法 arrayObject.push(newelement1,newelement2,....,newelementX)
<7>splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。
注释:该方法会改变原始数组。
语法 arrayObject.splice(index,howmany,item1,.....,itemX)
例题: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 />")
arr.splice(2,3,"William")
document.write(arr)
输出:George,John,Thomas,James,Adrew,Martin
George,John,William,Martin
<8>sort() 方法用于对数组的元素进行排序。
语 法 arrayObject.sort(sortby)
12.二维数组
例题:1.创建一个可以存放四组数据的二维数组,循环随机录入数据,计算每一组的平均值、总和
function fun1(){
var data=[创建一个二维数组
[0,0,0,0,0],第一个数组
[0,0,0,0,0,0,0],第二个数组
[0,0,0,0,0,],第三个数组
[0,0,0,0]第四个数组
];
for(var i=0;i<data.length;i++){循环遍历外面的数组
for(var j=0;j<data[i].length;j++){//通过外面的数组下标来进行内部数组的循环遍历
var num=Math.floor(Math.random()*4)随机赋值
data[i][j]=num;讲值存储在数组中
}
}