数组的那些儿事儿!
数组的概念
数组是指一组数据的集合,其中的每个数据被称作为元素,在数组种可以存放任意类型的元素。数组事一种将一组数据存储在单个变量名下的优雅方式。
创建数组
数组的创建方式(两种)
- 利用new创建数组
- 利用数组字面量创建数组(最常用)
利用new创建数组
var arr=new Array();
利用数组字面量创建数组
var arr= [];
数组的元素类型
数组种可以存放任意类型的数据,例如字符串,数字,布尔值等。
获取数组种的元素
数组的索引
索引(下标):用来访问数组元素的序号(数组下标从0开始)。就和c/c++中一样。
var arr= [1,2,3,4];
console.log(arr[2]);
//输入结果是3
数组可以通过索引来访问,设置,修改对应的数组元素,我们可以通过**数组名[索引]**的形式来获取数组中的元素
这里的访问就是获得的意思
遍历数组
遍历:就是把数组中的每个元素从头到尾都访问依次(类似我们每天早上学生的点名)。
var arr= [1,2,3,4];
for(var i=0;i<arr.length;i++){
console.log(arr[i]);
}
数组的长度
数组名.length可以访问数组元素的数量(数组长度)。
求数组的和与平均值
var arr=[2,6,1,7,4];
var sum=0;
var aver=0;
for(var i=0;i<arr.length;i++){
sum+=arr[i];
}
aver=sum/arr.length;
console.log(sum,aver);
求数组中的最大值
var arr=[2,6,1,7,4];
var max=arr[0];
for(var i=1;i<arr.length;i++){
if(arr[i]>max) max=arr[i];
}
console.log(max);
数组转换为字符串
var arr=['red','green','blue'];
var str='';
var sep='!'
for(var i=0;i<arr.length;i++){
str+=arr[i]+sep;
}
console.log(str);
数组中新增元素
通过修改length长度新增数组元素
- 可以通过修改length长度来实现数组扩容的目的
- length属性是可读写的
arr.length=7;
其中多出来的空间没有给值,就是声明变量未给值,默认值是undefined。
通过修改数组索引新增数组元素
可以通过修改数组索引的方式追加数组元素
var arr=['red','green','blue'];
arr[3]='PINK';
如果索引已经存在,就是替换!
不要直接给数组名赋值,否则会覆盖掉以前的值
筛选数组
找出数组中大于10的数字放入一个新数组
var arr=[2,0,6,1,77,0,52,0,25,7];
var newarr=[];
var j=0;
for(var i=0;i<arr.length;i++){
if(arr[i]>10){
newarr[j]=arr[i];
j++;
}
}
console.log(newarr);
灵活使用length来替换j
var arr=[2,0,6,1,77,0,52,0,25,7];
var newarr=[];
for(var i=0;i<arr.length;i++){
if(arr[i]>10){
newarr[newarr.length]=arr[i];
}
}
console.log(newarr);
数组案例
删除指定数组元素
把不是0的放到一个新数组
var arr=[2,0,6,1,77,0,52,0,25,7];
var newarr=[];
for(var i=0;i<arr.length;i++){
if(arr[i]!=0) newarr[newarr.length]=arr[i];
}
console.log(newarr);
翻转数组
var arr=['red','green','blue'];
var newarr=[];
for(var i=0;i<arr.length;i++){
newarr[arr.length-i-1]=arr[i];
}
console.log(newarr);
冒泡排序
var arr=[5,4,3,2,11,7,8,9];
for(var i=0;i<arr.length;i++){
for(var j=0;j<arr.length-i-1;j++){
if(arr[j]>arr[j+1]){
var temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
console.log(arr);