一、数组介绍
1.概念
数组的字面意思就是一组数据,一组数据(一般情况下是相同类型的数据, 不一定都是数字)
2. 数组的作用
使用单独的变量名来存储一系列的值, 数组是特殊的变量,它可以同时保存一个以上的值。
二、数组的定义与调用
1.数组的声明
使用
[]
声明数组
//里面的数据以,进行分隔
var arr = [1,2,3]
使用
new
关键词进行声明 (对象)
var arr = new Array(10)
//里面参数指定对应的长度 如果你没有写 表示长度为0
var arr2 = new Array(1,2,3,4)
//当前数组里面的数据有 1 2 3 4
2.数组元素的访问
length属性来访问对应的长度(也可以进行设置)
var arr = new Array(1, 2, 3, 4)
//通过length来访问数组的长度
console.log(arr.length); //4
arr.length = 11 //设置对应的长度 console.log(arr);
console.log(arr.length) //11
下标访问数组对应的数值
var arr = new Array(1, 2, 3, 4)
console.log(arr[0]) //获取第一个
数组的赋值
var arr = new Array()
arr[0] = 10
console.log(arr[0]) //10
// 给数组里面的元素随机给值
for (var i = 0; i < 10; i++) {
arr[i] = Math.random()
//0-1 包含0 不包含1的
}
console.log(arr);
运行结果如下:
3.数组的使用
数组遍历
传统的
for
循环遍历
var arr = [1,2,3,45,12] //利用顺序表的特点 有序
for(var i=0;i<arr.length;i++){
console.log(arr[i])
}
for in
遍历
(
对象 下标 迭代器
next)
var arr = [1,2,3,45]
for(var index in arr){ //index表示的为下标
console.log(arr[index])
}
for of
进行遍历(数组 迭代器来实现的)
//使用for of遍历(只能遍历数组)
for(var value of arr){ //value表示的是里面值
console.log(value)
}
数组的方法
数组是一个存储结构,只要是能存数据的容器 就必须具备增删改查的方法
添加
//push方法 添加到最后一个
var arr = [1]
arr.push(10)
console.log(arr) //[1,10]
//unshift方法 添加到第一个
var arr = [1]
arr.unshift(10)
console.log(arr) //[10,1]
删除
//pop方法 删除最后面
var arr = [1,2,3]
arr.pop() //下标不写的
console.log(arr) //[1,2]
//shift方法 删除第一个
var arr = [1,2,3]
arr.shift()
console.log(arr) //[2,3]
修改
反转
reverse (改变原来的数组)
var arr = [1,2,3,4,8]
var arr1 = arr.reverse();
//返回一个数组 这个数组就是反转后的数组
arr1.unshift(10) //返回的反转后的数组其实就我们原本的数组
console.log(arr) //反转后的结果 [10,8,4,3,2,1]
console.log(arr1) //反转后的结果 [10,8,4,3,2,1]
排序
sort (改变原来的数组 根据ASCII码排序)
var arr2 = [15,20,11,4,5]
arr2.sort() //返回一个数组 这个数组是排序好的数组
console.log(arr2);
// sort 其实是一个高阶函数 高阶函数就是里面用函数做为参数的函数
var arr3 = [15,20,11,4,5]
arr3.sort(function(a,b){
//根据a-b的正负值来进行大小区分
//如果a-b大于零就交换位置
return a-b //a-b是正序 b-a就倒序
})
console.log(arr3);
连接concat (不改变原来的数组)
var arr1 = [1, 2, 3, 4]
// concat 连接 把多个数组变成一个数组
var newArr = arr.concat(arr1)
console.log(newArr);//1,2,3,4,1,2,3,4