数组对象
数组的作用是:使用单独的变量名来存储一些列的值,数组可以存储任意数据类型的数据。
创建数组
数组有两种创建方式
第一种字面量的方式
var arr = [1,'2',true,{},[]];
第二种 关键字的方式
//无元素的空数组
var arr = new Array();
//有元素的数组
var arr = new Array(1,2,3,4);
//如果只有一个参数代表数组的长度
var arr = new Array(5)//代表数组长度为5
遍历数组
用for循环遍历数组,数组由下标控制,从0开始
arr:数组名称
arr.length:数组长度
arr[i]:数组内第i个元素
//打印数组内的所以元素
for(var i=0; i<arr.length;i++){
console.log(arr[i])
}
数组的读写
数据既可以被读也可以被写,通过下标实现
arr[1]='第二个元素'//向数组内写入数据
console.log('arr[1]')//在控制台打印第二个元素
循环100个数到数组内
var arr =[]
for(var i = 1;i<=100;i++){
arr[i-1] = i
}
数组方法
栈方法
在数组结尾操作,会改变原来的数组
添加元素
语法
arr.push('要添加的内容')//从数组最后添加
删除元素
语法
arr.pop()//从最后一个开始删
队列方法
和栈方法完全相反,在数组头部进行操作
添加元素
语法
arr.unshift('要添加的内容')//在数组头部添加
删除元素
语法
arr.shift()//从数组头部开始删
splice()删除、添加、替换
splice()非常强大 可以对数组进行添加、删除、替换
语法
数组.splice(开始位置,删除的项数,插入的元素)
开始位置:是一个数值类型的number,这个位置是以下标定义的。
删除的项数:删除几项,是一个数值类型的number。
插入的元素:可以是任意多个参数
删除
可以删除任意项只需指定两个参数:开始位置和删除的项数
例子
arr.splice(1,3)//从第一项开始 删除三个元素
添加
可以向指定的位置插入任意数量的项,只需要提供三个参数:起始位置 要删除的项(0)和要插入的项,如果是插入多个项,可以在传入任意多个。
例子
arr.splice(2,0,'12','34');
排序
选择排序
从第一项起,每一项都和后面所有的项依次比较,如果前面的项大于后面的项,则调换位置,否则,位置不变,接着向后比较
代码
/*
使用for循环 拿到第一个元素 9 之后
接下来,应该从第二个元素开始,也就是 8
然后 9 和 8 比较 因为 9 > 8 调换位置 [8,9,7,4]
然后在拿 7 和第一项 比较 8 > 7 [7,9,8,4]
然后在拿 4 和第一项 比较 7 > 4 [4,9,8,7]
*/
for (var i = 0; i < arr.length; i++) {
for (var j = i + 1; j < arr.length; j++) {
if (arr[i] > arr[j]) {
var num = arr[i];
arr[i] = arr[j]
arr[j] = num;
}
}
}
console.log(arr);
冒泡排序
数组中的相邻的两个元素进行比较,如果前一项大于后一项,交换位置,否则不变
注意:每一次排序,参与排序的数中,最大的一定是在最右边的,也就是,每一次少一个数排序
var arr = [5, 8, 7, 4,1];
for (var i = 0; i < arr.length; i++) { // 轮
for (var j = 0; j < arr.length; j++) { // 次
if (arr[j] > arr[j + 1]) {
var num = arr[j];
arr[j] = arr[j+1];
arr[j+1] = num;
}
}
}
sort()排序方法
sort()是给数组排序的,默认是升序排列,调用的是tpString(),然后比较得到的字符串,用来确定如何排序,默认是按字符串的升序排列。
语法
数组.sort()
var arr = [6, 1, 3, 9, 4, 8];
console.log(arr.sort());// 默认排序的是第一位
var arr1 = [6, 1, 3, 9, 4, 8,10];
console.log(arr1.sort());
sort自定义排序
sort()可以接受一个比较的函数作为参数,以便于我们指定哪个值在前面
这个函数有两个参数,这两个参数做减法运算,如果返回的是一个正数,说明第一个值大于第二个值
如果返回的是负数,第二个值大于第一个值
如果返回的是0,两个值相等
语法
数组.sort(function( 参数1,参数2){
// 代码块
})