10 数组

137 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

数组:
可以一次性存储很多个数据 可以存储任意数据类型 可以通过下标来改值、长度

下标改值:

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);