数组是什么
所谓数组,就是将多个元素按一定顺序排列放到一个集合中,那么这个集合我们就称之为数组。
为什么要使用数组
储存多个数据,方便使用
数组的定义
数组是一个有序的列表,可以在数组中存放任意的数据,并且数组的长度可以动态的调整
数组的创建
var arr = [];//创建一个空数组
var arr2 = [1,2,3];//创建一个有三个元素的数组
2、采用构造函数创建
a、var arr1 = new Array();//创建空数组
c、var arr3 = new Array(5,4,3,2,1);//创建数组并初始化
获取数组元素
数组的下标取值范围为:0-arr.length-1
// 格式:数组名[下标] 下标又称索引
// 功能:获取数组对应下标的那个值,如果下标不存在,则返回undefined。
var arr = [‘red’, ‘green’, ‘blue’];
arr[0]; // red
arr[2]; // blue
arr[3]; // 这个数组的最大下标为2,因此返回undefined
arr[arr.length-1] ;//blue
数组的长度
length:获取数组内元素的个数
// 格式:数组名[下标] 下标又称索引
// 功能:获取数组对应下标的那个值,如果下标不存在,则返回undefined。
var arr = [‘red’, ‘green’, ‘blue’];
console.log(arr.length);
遍历数组
遍历:遍及所有,对数组的每一个元素都访问一次就叫遍历。
for循环和 for in循环
数组遍历的基本语法:
for(var i = 0; i < arr.length; i++) {
// 数组遍历的固定结构
}
for (变量 in 对象)
{
在此执行代码
}
数组中新增元素
数组中元素的修改
// 格式:数组名[下标/索引] = 值;
// 如果下标有对应的值,会把原来的值覆盖,如果下标不存在,会给数组新增一个元素。
var arr = [“red”, “green”, “blue”];
// 把red替换成了yellow
arr[0] = “yellow”;
// 给数组新增加了一个pink的值
arr[3] = “pink”;
数组元素的排序
sort():对数组的元素进行排序。
// 格式:数组名[下标/索引] = 值;
// 如果下标有对应的值,会把原来的值覆盖,如果下标不存在,会给数组新增一个元素。
var arr = [1, 4, 3,2];
// 查找元素 red
document.write(arr.sort());
数组元素的检测
arr instanceof Array
Array.isArray(arr);
检测arr是否为数组类型,是的话返回true,不是的话返回false
数组元素的查找
indexOf() 方法可返回某个指定的元素在数组中首次出现的位置,如果没有找到则返回-1
// 格式:数组名[下标/索引] = 值;
// 如果下标有对应的值,会把原来的值覆盖,如果下标不存在,会给数组新增一个元素。
var arr = [“red”, “green”, “blue”];
// 查找元素 red
console.log(arr.indexOf(“red”)); //0
console.log(arr.indexOf(“green”)); //1
console.log(arr.indexOf(“blue”)); //2
console.log(arr.indexOf(“haha”)); //-1
console.log(arr.indexOf(“ooo”)); //-1
数组的增删改查方法
增
push()向数组的末尾添加一个或更多元素。
unshift()向数组的开头添加一个或更多元素。
删
pop()删除数组的最后一个元素。
shift()删除数组的第一个元素。
改
splice()从数组中添加或删除元素。
在使用splice截取数组的时候,传入的参数不同,要注意需要取返回值,还是取改变后的原数组
查
indexOf()查找元素在数组中第一次出现的位置。
lastIndexOf()查找元素在数组中最后出现的位置。
数组转字符串
join()把数组的所有元素放入一个字符串。
toString()把数组转换为字符串。
数组的排序
sort()对数组的元素进行排序。
-
不传参数,将不会按照数值大小排序,按照字符编码ASCII的顺序进行排序
var arr = [‘General’,‘Tom’,‘Bob’,‘John’,‘Army’];
var resArr = arr.sort();
console.log(resArr);//输出 [“Army”, “Bob”, “General”, “John”, “Tom”]var arr2 = [30,10,111,35,1899,50,45]; var resArr2 = arr2.sort(); console.log(resArr2);//输出 [10, 111, 1899, 30, 35, 45, 50]
-
传入参数,实现升序,降序
var arr3 = [30,10,111,35,1899,50,45];
arr3.sort(function(a,b){
return a - b;
})
console.log(arr3);//输出 [10, 30, 35, 45, 50, 111, 1899]var arr4 = [30,10,111,35,1899,50,45]; arr4.sort(function(a,b){ return b - a; }) console.log(arr4);//输出 [1899, 111, 50, 45, 35, 30, 10]
数组的拼接
concat()连接两个或更多的数组。
数组元素的去重
// 格式:数组名[下标/索引] = 值;
// 如果下标有对应的值,会把原来的值覆盖,如果下标不存在,会给数组新增一个元素。
var arr = [1, 3, 5,7,2,1,3,4,5,6];
// 定义一个空数组
var newArr = [];
// 循环遍历旧数组
for(var i =0;i<arr.length;i++){
// 如果新数组内没有找到元素,就放入到新数组中
if(newArr.indexOf(arr[i])==-1){
newArr.push(arr[i]);
}
}
console.log(newArr);