数组
数组的概念
数组(Array)就是一组数据的集合,其中每个数据被称作元素,在数组中可以存放任意类型的元素,数组是一种将一组数据存储在单个变量名下的优雅方式
怎么创建数组
1.利用new创建数组
var 数组名=new Array()//这是一个空数组;
var 数组名=new Array(5)//这是一个长度为5的空数组//显示5[empty*5];
var 数组名=new Array(1,2,3,4)//这是一个有内容的数组;
2.利用数组字面量创建数组
var 数组名=[]
举例:
var arr=['小白',9, '老师',true]
其中数组里面的数据,例如'小白',9等称为数组元素
获取数组中的元素
数组可以通过索引来访问设置修改对应的数组元素,我们通过"数组名|[索引]"的形式来获取数组中的元素,这里访问就是获取得到的意思
数组的索引
索引(下标):用来访问数据元素的序号(数组下标从0开始)
var arr=['权志龙','泫雅','宋闵浩','loco']
console.log(arr[0]/* 结果权志龙 */)
console.log(arr[1]/* 结果泫雅 */)
console.log(arr[2]/* 结果宋闵浩 */)
console.log(arr[3]/* 结果loco */)
console.log(arr[4]/* 结果undefined,因为没有这个数组元素 */)
遍历数组
遍历:就是把数组中的每个元素从头到尾访问一次
数组长度
数组名.length
var arr=['权志龙','泫雅','宋闵浩','loco']
for(var i=0;i<arr.length;i++){
console.log(arr[i])
}
console.log(arr.length)/* 数组长度4 */
// 1.因为我们的数组索引号从0开始,所以i必须从0开始 i<3
// 2.输出的时候arr[i],i计数器当索引号来使用
// 3.数组的长度是元素个数,不要跟索引号混淆
// 4.arr.length动态检测数组元素的个数
// 案例一求数组[2,6,1,7,4]里面所有元素的和以及平均值
// 思路(1)声明一个求和变量和平均值变量 sum/average
// (2)遍历这个数组,把里面每个数组元素加到sum里面
// (3)求和变量sum除以数组的长度就可以得到数组的平均值
var sum=0
var average=0
var arr1=[2,6,1,7,4]
for(i=0;i<arr1length;i++>){
sum=sum+arr1[i]/* 我们加的数数组元素arr1[i]不是计数器 */
}
average=sum/arr1.length
console.log(sum,average)/* 想要输出多个变量,用逗号分隔即可 */
// 案例二:求数组[2,6,1,77,52,25,7]中的最大值
// 思路(1)声明一个保存最大元素的变量max
// (2)默认最大值可以取数组中的第一个元素
// (3)遍历这个数组,把里面的每个数组和max相比较
// (4)如果这个数组元素大于max就把这个数组元素存到max里面,否则就继续下一轮比较
var max=2
var arr2=[2,6,1,77,52,25,7]
for(i=1,i<arr2.length;i++){
if(arr2.length[i]>max){
max=arr2.length[i]
}
}
console.log('这个数组中的最大值为'+max)
数组中新增元素
1.通过修改length长度新增数组元素
var arr=[1,2,3]
console.log(arr)
arr.length=5/* 把数组的长度修改为5,里面有5个元素 */
console.log(arr[3])/* 结果undefined */
console.log(arr[4])/* 结果undefined */
2.通过新增数组元素,修改索引号
var arr1=[1,2,3]
arr1[3]=4
console.log(arr1)/* 显示1234 */
arr1[0]=9/* 这里是替换原来的数组元素 */
console.log(arr1)/* 结果显示9234 */
arr1='pink'/* 这里是替换数组 */
console.log(arr1)/* 结果为pink */
// 案例一新建一个数组,存放10个整数,(1-10)
// 思路(1)通过循环来追加数组
// (2)声明一个空数组
// (3)循环中的计数器i可作为数组元素存入
// (4)由于数组的索引号是从0开始的,因此计数器从0开始更合适,存入的数组元素要+1
var arr2=[]
for(i=0,i<10;i++){
// arr2=i 不要这么写,直接给数组名赋值,否则会不断进行替换
arr2[i]=i+1
}
console.log(arr2)
// 案例二筛选数组:将数组[2,0,6,1,77,0,52,25,7]中大于等于10的元素筛选出来,放入新数组中
var arr1=[]
var arr=[2,0,6,1,77,0,52,25,7]
for(i=0,i<arr.length;i++){
if(arr[i]>=10)
arr1[arr1.length]=arr[i]
}
console.log(arr1)
数组案例
案例一:删除指定数组元素
要求将数组[2,0,6,1,77,0,52,25,7]中0去掉组成一个新数组
var a=[]
var arr=[2,0,6,1,77,0,52,25,7]
for(i=0;i<arr.length;i++){
if(arr[i]!==0){
a[a.length]=arr[i]
}
}
console.log[a]
案例二:翻转数组
要求:将数组['red','green','pink','blue']的内容反过来存放
var a=[]
var arr=['red','green','pink','blue']
for(i=arr.length-1;i>=0;i--){
a[a.length]=arr[i]
}
console.log(a)
案例三:数组排序(冒号排序)!
冒号排序:是一种算法,把一系列的数据按照一档的顺序进行排列显示(从大到小或从小到大) 冒号排序的核心原理:一次比较两个元素,如果他们的顺序错误就把他们交换过
var arr=[5,4,3,2,1]
for(var i=0;i<=arr.length-1;i++){
for(var j=0;j<=arr.length-i-1;j++){
if(arr[i]>arr[j+1]){
var temp=arr[j]
arr[j]=arr[j+i]
arr[j+i]=temp
}
}
}
案例四:数组排序(选择排序)!
var arr = [2, 5, 9, 4, 6, 1, 7, 3, 8]
console.log('原始数组', arr);
for (a = 0; a < arr.length; a++) {
var min = a
for (i = a + 1; i < arr.length; i++) {
if (arr[min] > arr[i]) {
min = i
}
}
var temp = arr[a]
arr[a] = arr[min]
arr[min] = temp
}
console.log('按照从小到大排列的新数组', arr);