JavaScript中的数组
1.数组是引用类型的对象;
这个类型有就是
原始类型: number string boolean undefiend null
数据直接保存在变量本地的数据类型
按值传递:两个变量之间赋值时,或者将变量作为参数传入函数时,其实仅将原变量中的值赋值一个副本给对方
修改新变量,不会影响原变量的值
引用类型: 数据无法直接保存在变量本地的数据类型
因为变量只允许保存一个值,而引用类型往往同时保存多个值
会在window对象之外,创建一个独立的存储空间,并且每个独立的存储空间都有一个唯一的地址
变量中依然保存的是一个值,只是数组中仅保存地址而已 -- 称为 引用
传递的是地址(实际上也是按值传递,只不过值是一个地址):修改了新数组,等效于直接修改元素数组
2.数组存储的原理:
3.什么是数组:
可以存储一堆变量的,然后把他们放到一起,给他们一个统一的名字
4.创建数组:
语法
var arr=[];只要[]就是一个新数组
var arr1=new Array()
var arr=[1,2,3]
5.数组的对象属性:constructor返回对创建此对象的数组函数的引用
length设置或返回数组中的长度
prototype向对象添加属性和方法
6.数组对象的方法:(1)concat()连接两个或跟多的数组,并返回结果
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() 方法用于把数组中的所有元素放入一个字符串。(我们也叫无缝连接)
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr.join()
)
输出:George,John,Thomas
(3)pop()删除并返回数组的最后一个元素
var arr = new Array(3) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas"document.write(arr)
document.write("<br />")document.write(arr.pop())
document.write("<br />")document.write(arr)
George,John,Thomas
输出:
Thomas George,John(4)push()向数组的末尾添加一个或更多元素,并返回新的长度。
var arr = new Array(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
(5)reverse()颠倒数组中元素的顺序
var arr = new Array(3) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" document.write(arr + "<br />") document.write(arr.reverse()
)
输出:
George,John,Thomas Thomas,John,George
(6)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
(7)slice:从某个已有的数组返回选定的元素
var arr = new Array(3) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" document.write(arr + "<br />") document.write(arr.slice(1)
+ "<br />") document.write(arr)
输出:
Geoge,John,Thomas John,Thomas George,John,Thomas
(8)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()
)
输出:
George,John,Thomas,James,Adrew,Martin Adrew,George,James,John,Martin,Thomas
(9)splice:删除元素,并向数组添加新元素
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,0,"William")
document.write(arr + "<br />")
输出:
George,John,Thomas,James,Adrew,Martin George,John,William,Thomas,James,Adrew,Martin
(10)toSource:返回该对象的源代码。
function employee(name,job,born) { this.name=name; this.job=job; this.born=born; } var bill=new employee("Bill Gates","Engineer",1985); document.write(bill.toSource()
);
输出:
({name:"Bill Gates", job:"Engineer", born:1985})
(11)toString:把数组转换为字符串,并返回结果。
var arr = new Array(3) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" document.write(arr.toString()
)
输出:
George,John,Thomas
(12)toLocaleString:把数组转化成本地数组,并返回结果
var arr = new Array(3) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" document.write(arr.toLocaleString()
)
输出:
George, John, Thomas
(13)unshift:向数组的开头添加一个或更多元素,并返回新的长度。
var arr = new Array() arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" document.write(arr + "<br />") document.write(arr.unshift("William")
+ "<br />") document.write(arr)
输出:
George,John,Thomas
4
William,George,John,Thomas
7.还有一个二维数组,就是数组又引用了一个数组,我认为二维数组中不好理解的是,一定要看好行和列,一定要把实录弄清楚了在写,不然那
你写到一半,就不知道在写啥了,那我们就来看一下例子
<!-- 1.创建一个可以存放四组数据的二维数组,循环随机录入数据,计算每一组的平均值、总和 -->
<script type="text/javascript">
var arr = [[],[],[],[]];//定义的一个空的二维数组
for(var i=0 ;i<4;i++){//进行i的遍历
var num=0;//定义一个空的变量来算总和
var num1=0;//定义一个空的变量来算平均值
for(var j=0;j<4;j++){//进行j的遍历
arr[i][j]=parseInt(Math.random()*11);//获取随机数
num+=arr[i][j];//累加
}
num1=num/4;//平均值
}
console.log("总和为:"+num);
console.log("平均值为:"+num1);