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);

 


posted @ 2019-08-03 10:32  笑等茶凉zl  阅读(244)  评论(0编辑  收藏  举报