原生js操作数组

137 阅读3分钟

数组创建

JS中创建数组有两种方式:

  1. 利用new创建数组
  2. 利用数组字面量创建数组

1.计算数组的和以及平均值

 var arr = [2, 1, 6, 4, 7];
    var sum = 0;
    var average = 0;
    for (var i = 0; i < arr.length; i++){
        sum += arr[i];
    }
    average = sum / arr.length;
    console.log(sum,average);
  • 控制台输出:

平均值以及和.png

2.求数组中的最大值

求数组[2,43,24,35,12,14]中的最大值

  var arr = [2,43,24,35,12,14];
  var max = arr[0];
  for (var i = 1; i < arr.length; i++){
      if (arr[i] > max){
          max = arr[i];
      }
  }
  console.log('最大值' + max);
  • 控制台输出:

最大值.png

3.数组中新增元素

可以通过修改length长度以及索引号增加数组元素

通过修改length长度新增数组元素
可以通过修改length长度来实现数组扩容的目的
length属性是可读写的
通过修改数组索引新增数组元素
可以通过修改数组索引新增数组元素
不能直接给数组名赋值,否则会覆盖掉以前的数据

3.1数组新增元素

新建一个数组,里面存放10个整数(1~10)

   var arr = [];
    for (var i = 0; i < 10; i++){
        arr[i] = i + 1;
    }
    console.log(arr);
  • 控制台输出:

新数组.png

4.筛选数组--大于等于

4.1将数组[2,7,0,4,81,22,54,6,1]中大于等于10的元素选出来,放入新数组中

方法一:

 var arr = [2,7,0,4,81,22,54,6,1];
 var newArr = [];
 var j = 0;
 for (var i = 0; i < arr.length; i++){
     if (arr[i] > 10){
         //新数组索引号应该从0依次递增
         newArr[j] = arr[i];
         j++
     }
 }
 console.log(newArr);

方法二:

 var arr = [2,7,0,4,81,22,54,6,1];
 var newArr = [];
 for (var i = 0; i < arr.length; i++){
     if (arr[i] > 10){
         //新数组索引号应该从0依次递增
         //newArr.length 初始值为0
         newArr[newArr.length] = arr[i];
     }
 }
 console.log(newArr);
  • 控制台输出:

筛选.png

5.冒泡排序

  • 冒泡排序:是一种算法,把一系列的数据按照一定的顺序进行排列展示(从小到大或从大到小)

5.1将数组[4,1,2,3,5] 采用冒泡排序的方法调整为[5,4,3,2,1]

 var arr = [4,1,2,3,5] ;
 for (var i = 0; i <= arr.length - 1; 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);
  • 控制台输出:

冒泡排序.png

6.删除指定数组元素

6.1将数组[3,0,22,5,7,12,0,4,0,15,0,5,9]中的0去掉,形成一个不包含0的新数组

 var arr = [3,0,22,5,7,12,0,4,0,15,0,5,9];
 var newArr = [];
 for (var i = 0; i < arr.length; i++){
     if (arr[i] !=0){
         newArr[newArr.length] = arr[i];
     }
 }
 console.log(newArr);

  • 控制台输出:

删除.png

7.翻转数组

7.1将数组['red','green','orange','blue','black','pink','white']的内容反过来存放

  • 输出['white','pink','black','blue','orange','green','red']

     var arr = ['red','green','orange','blue','black','pink','white'];
     var newArr = [];
     for (var i = arr.length - 1; i >= 0; i--){
         newArr[newArr.length] = arr[i];
     }
     console.log(newArr);
    
    
  • 控制台输出:

翻转.png