数组
数组是一组数据的集合
数组是对象类型
万事万物皆对象
数组的创建
利用new创建数组
A要大写
细节
var arr = new Array(10);
console.log(arr)
// 如果new Array()接收一个参数,且此参数为number类型(数字),会自动生成对应长度的数组,数组的对应元素就是空
// 如果new Array()接收一个参数,参数不是number类型,会将参数作为数组的元素
var arr = new Array('10');
console.log(arr);
// 在数组中 字符串和数子是两个不同的类型
利用数组字面量创建数组
数据用逗号分离
数组的特性
- 有length属性(数组中元素的个数)
- 可以通过下标取值和赋值 下标的最大值为length-1
- 可以被循环遍历
数组的递增赋值
数组元素的类型
存放在数组里的数据就是数组元素
获取数组元素
数组的索引
从0开始
通过索引进行访问、设置、修改对应的数组元素,通过数组名[索引]的形式获取数组中的元素
var array = [1,2,3];
alert(array[1]);
如果索引号对应的,在数组中没有该数组元素,则输出undefined
遍历数组
遍历即把数组元素从头到尾访问一次
通过forEach进行遍历
IE8及其以下浏览器均不支持以下方法
- 需要一个函数作为一个参数
- 像这种函数,由我们创建,但是不由我们调用的,称之为回调函数
- 数组中有几个元素,函数就会执行几次,每次执行时,浏览器会将遍历到是元素以实参的形式传递进来,我们可以定义形参,来读取这些内容
- 浏览器会在回调函数中传递3个元素
- 第一个参数,就是当前正在遍历的元素
- 第二个参数,就是当前正在遍历的元素的索引
- 第三个参数,就是正在遍历的数组
arr.forEach(function(value,index,obj){
console.log(value);
})
通过for循环,进行下标访问元素,实现遍历
for里面的i是计数器,当索引号使用,arr[i]是数组的第i个数组元素
var arr = ['A', 'B', 'C'];
// 数组索引号从0开始,所以i必须从0开始,i<3
for(i = 0; i < 3; i++){
console.log(arr[i]);
}
for… in 循环 返回下标
// 返回的下标是字符串,不影响使用
var grade = [87, 89, 68, 74, 35, 98];
// for ...in 返回下标
for(var i in grade){
console.log(i);
}
for …of 返回数组的每一个元素
for(var val of grade){
// 返回的下标是字符串类型,不影响使用
console.log(val);
}
数组长度
索引号是从0开始,而数组长度表示元素的个数
arr.length 动态监测数组元素的个数
var arr = ['A', 'B', 'C'];
// 数组索引号从0开始,所以i必须从0开始,i<3
for(i = 0; i < arr.length; i++){
console.log(arr[i]);
}
数组元素求和
// 要加的是数组元素 array[i] 不是计数器i
sum = sum + arr[i];
数组元素最大值
数组转换成分割字符串
数组新增元素
通过修改length长度新增数组元素
-
可以通过修改length长度来实现数组扩容的目的
-
length属性是可读写的
// 末尾新增元素 arr.[arr.length] = 'aqua'
通过修改数组索引号新增元素
- 可以通过修改数组索引的方式追加数组元素
- 不能直接给数组名赋值,否则会覆盖掉以前的数据
循环数据存入数组
筛选数组
在数组中,找出大于某个元素的数,存入新数组
通过一个变量j,让新数组索引号从0递增
新数组为空,即newArr.length为0,将newArr.length作为索引号
length自动监测元素个数的变化
删除指定数组元素(数组去重)
翻转数组
新的空数组,自动根据存放元素的内容的多少,扩充自己
索引号比数组元素个数小1