数组:
可以一次性存储很多个数据
可以存储任意数据类型
可以通过下标来改值、长度
下标改值:
var arr1 = [5,6];
arr1[0] = 10; //10 6
数组循环(遍历、迭代、枚举)
var arr2 = [10,20,30,40,50,60];
for(var i = 0; i < arr2.length; i++){
console.log(arr2[i]); //遍历出数组
}
console.log(arr2.length);
需求:动态的对一个空数组里面添加10个元素
var arr = []; //定义一个空数组
console.log(arr.length); //0
for(var i = 0; i < 10; i++){
console.log(i);
arr[i] = "第" + i + "个元素";//给每个数组里元素赋的值都是遍历得来的动态的值
}
注:arr[i]代表数组每个元素 i 代表遍历得到的值
正向遍历数组,访问数组里每个数据
for(var i = 0; i < arr.length; i++){
console.log(arr[i]);
}
逆向遍历数组,访问数组里每个数据
for(var i = arr.length-1; i >= 0; i++){
console.log(arr[i]);
} //arr.length-1代表最后一个元素
数组求最大值
var arr = [1,3,5,100,2,300,6];
var max = arr[0]; //假设第一个元素为max
//循环拿到每个元素
for(var i = 0; i < arr.length; i++){
// 判断if
if(max < arr[i]){ //max小于遍历的数
max = arr[i]; //将遍历到的较大的数赋值给max
}
}
console.log(max);
需求:将字符串数组用|分割成一个字符串 小明|小红|小华|小花
var names = ['小明','小红','小华','小花'];
var str = ""; //储存字符
for(var i = 0; i < names.length - 1; i++){ //倒数第二个为止
str += names[i] + "|"; //给到str每一个数组里的元素加|
}
console.log(str + names[names.length - 1]); //最后一个手动添加
注:我们只要每两个中间有|,如果直接输出str就会导致最后有|,所以我们到倒数第二个后,使 得倒数第二个后面有|,再手动添加最后一个
需求:在前面加|
for(var i = 1; i < names.length; i++){ //从第二个开始
str += "|" + names[i];
}
console.log(name[0] + str); //第一个手动添加
注:我们只要每两个中间有|,如果直接输出str就会导致前面有|,所以我们从第二个开始,然后 再手动添加第一个
需求:去掉数组中重复的0,把其它元素放到一个新的数组
var arr = [10,0,20,0,30,40,50,60,0];
//定义一个新空数组
var newArr = [];
for(var i = 0; i < arr.length; i++){ //拿到每一个元素
if(arr[i] != 0){ //拿到除了0以外所有的数据
newArr[newArr.length] = arr[i];// 空数组长度为0
}
}
注:newArr[newArr.length] = arr[i];
newArr[0] = arr[0]
newArr[1] = arr[1]
newArr[2] = arr[2]
把原来数组里的每个非0元素都赋值到新的数组里去,新的数组里的元素位置用newArr.length来表示,使得新数组下标有依次增加的数字能够接受原来数组的非0数据
练习:
求数组中所有元素的和
var arr = [1,2,3,4,5,6];
var sum = 0; //存储和
for(var i = 0; i < arr.length; i++){ //遍历拿到每个元素
sum += arr[i]; //使得每个元素相加
}
console.log("数组中所有元素的和:" sum);
求数组中所有元素的平均值
var arr2 = [1,2,3,4,5,6];
var sum1 = 0;
for(var i = 0; i < arr2.length; i++){
sum += arr2[i];
}
console.log("数组中所有元素的平均值:" + sum1 / arr2.length); //除以数组中元素个数
求数组中所有元素中的max值和min值
求最大值max
var arr2 = [1,2,3,4,5,6];
var max = arr[0]; //假设第一个元素为max
for(var i = 0; i < arr2.length; i++){
if(max < arr[i]){ //判断max是否小于遍历的元素
max = arr[i]; //如果小于则遍历到的元素大于max,取较大的数
}
}
console.log("最大值max:" + max);
求最小值min
var arr3 = [1,2,3,4,5,6];
var min = arr[0]; //假设第一个元素为min
for(var i = 0; i < arr3.length; i++){
if(min > arr[i]){ //判断min是否大于遍历的元素
min = arr[i]; //如果大于则遍历到的元素小于min,取较小的数
}
}
console.log("最小值min:" + min);
混合写法
var arr = [1,2,3,4,5];
// 定义变量来存储和假设最大值和最小值
var sum = 0;
var max = arr[0]; //假设的最大值
var min = arr[0]; //假设的最小值
for(var i = 0; i < arr.length; i++){
sum += arr[i];
if(max < arr[i]){
max = arr[i];
}else if(min > arr[i]){
min = arr[i];
}
}
console.log("数组中所有元素的和:" + sum);
console.log("数组中所有元素的平均值:" + sum/arr.length);
console.log("最大值max:" + max);
console.log("最小值min:" + min);