零基础学JavaScript—数组

1. 数组是什么

数组是指一组数据的集合,其中的每个数据被称作元素,在数组中可以存放任意类型的元素。数组是一种将一组数据存储在单个变量名下的优雅方式。


2.创建数组

2.1 数组的创建方式

2.1.1 利用new创建数组


var 数组名 = new Array() ; 

var arr = new Array(); //创建一个新的空数组

  •  需要结合对象使用

2.1.2 利用数组字面量创建数


var arr = []; //创建了个空的数组


var arr1 = [1,2,3,'一二三',true];

  •  数组的字面量是方括号;
  •  声明数组并赋值称为数组的初始化 ;                                         
  •  数组里面的数据,比如‘1,2,3,‘一二三’’,我们称为数组元素

3.获取数组元素

3.1 数组的索引

       索引(下标):用来访问数组元素的序号(数组下标从0开始)


var arr = ['小白','小黑','大黄',‘瑞奇’];

索引号:       0      1      2       3

console.log (arr[2]); 获取数组中的第2个元素

  • 数组可以通过索引访问、设置、修改对应的数组元素,我们可以通过“数组名[索引]”的形式来获取数组中的元素;
  • 如果想要获取数组中不存在的索引,输出的结果没有对应的数组元素,则是''undefined'';

4.遍历数组

4.1遍历是什么

  • 遍历:就是把数组中的每个元素从头到尾都访问一次;

var arr = ['red','green','blue'];

for ( var i = 0 ; i < 3 ; i++){
        
        console.log (arr[i])

        }
  • 因为我们的数组索引号从0开始,所以i必须从0开始;
  • 输出的时候 arr[i] ,i 是当计数器,当索引号来用;

4.2动态检测数组的元素(获取数组长度)


var arr = ['red','green','blue'];

for ( var i = 0 ; i < arr.length ; i++){
        
        console.log (arr[i])

        }
  • 使用''数组名.length''可以访问数组元素的数量

4.3实际案例1

求数组[2,6,1,7,4] 里面所有元素的和以及平均值。

思路:/声明一个求和变量sum。
           /遍历这个数组,把里面每个数组元素加到sum里面。
           /用求和变量sum除以数组的长度就可以得到数组的平均值。

var arr = [2,6,1,7,4];

var sum = 0 ; /声明一个求和的变量

var average = 0 ; /声明一个求平均值的变量

for(var i = 0 ; i <arr.length ; i++) { 

    sum+= arr[i} /求和:我们加的不是i计数器,而是数组里面的by个元素

}
    average  = sum/arr.length /求平均值:arr之和sum除以数组个数arr.length

    console.log(sum,average); /想要输出多个变量,用逗号分隔即可

4.4实际案例2

求数组[2,6,1,77,52,25,7]中的最大值
思路:/声明一个保存最大元素的变量max。
           /默认最大值可以取数组中的第一个元素。
           /遍历这个数组,把里面每个数组元素和max相比较。
           /如果这个数组元素大于max就把这个数组元素存到max里面,否则继续下一轮比较。
           /最后输出这个max

var sum = [2, 6, 1, 77, 52, 25, 7]
var max = 1; /声明一个暂存sum最大值的变量

for (var  i = 0; i < sum.length; i++) {
          if (sum[i] > max) {    
          max = sum[i] /如果sum里面的第i个大于max里面的元素,那么就把最大值放入max中
}
}
          console.log(max);

5.数组中的新增元素

5.1通过修改length长度新增数组元素


var arr = ['小白','小黑','大黄',‘瑞奇’];

索引号:       0      1      2       3

console.log (arr.length); /输出arr数组里面的总元素长度(数量)

arr.length=5; /把我们数组的长度修改为5,里面应该有5个元素
              /其中索引号4,5的空间没有给值,就是声明变量未给值,默认值就是undefined

5.2通过修改索引号修改数组元素


var arr = ['小白','小黑','大黄',‘瑞奇’];

索引号:       0      1      2       3


arr[4] = '加菲猫';/加菲猫就成为了arr里面的元素,索引号第4个

arr[0] = '汤姆';  /汤姆元素会替换原来的小白元素

arr = '熊大';     /熊大元素会将原有的所有元素替换

5.3(案例)数组存放10个值

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

var arr = [] ;  / 声明一个空的数组来存放元素

for (var i = 1 ; i <=10 ; i++){
     
      arr[i]=i   /arr里面的里i个元素,等于i

}

console.log(arr);

5.4(案例)数组去重

将数组[2,0,6,1,77,0,52,0,25,7]中大于等于10的元素选出来,放入新数组。

思路:/声明一个新的数组用于存放新数据newArr。
           /遍历原来的旧数组,找出大于等于10的元素。
           / 依次追加给新数组newArr。

var arr = [2, 6, 1, 77, 52, 25, 7];
var newArr = [];     /声明一个新的数组用于存放新元素
var j = 0;          
for (var i = 0; i<arr.length; i++) {
      if (arr[i] > 10) {
      //newArr[i] = arr[i]/使用此方法会导致arr每i个元素包括前面的索引全部赋给newarr
      newArr[j] = arr[i]  /新数组一定是从0123开始递增,新增变量j,满足大于10一次
      j++                 /j就加一次  j就相当于newArr的索引&计数器
}
}
      console.log(newArr);

-------------------------------

var arr = [2, 6, 1, 77, 52, 25, 7];
var newArr = [];     /声明一个新的数组用于存放新元素
var j = 0;          
for (var i = 0; i<arr.length; i++) {
      if (arr[i] > 10) {
      newArr[newArr.length] = arr[i]   /length自动检测元素的变化

}
}
      console.log(newArr);

5.5(案例)翻转数组

将数组['red','green','blue','pink','purple']的内容反过来存放


思路:/声明一个新数组 newArr
           /把旧数组索引号第4个取过来(arr.length-1),给新数组索引号第e个元(newArr.length)
           /我们采取递减的方式i--

var arr = ['red', 'green', 'blue', 'pink', 'purple'];

var newArr = [];

for (i = arr.length - 1; i >= 0; i--) { /i需要获取arr最后一个索引,所以需要arr.lenght减1
                                        /i>=0是arr的长度大于零会执行循环,i--避免死循环
     newArr[newArr.length] = arr[i] /把arr里面的第i个就是arr.length-1最后一个给newArr
                                    /依次循环
        
}

console.log(newArr);

5.6(案例)数组排序/冒泡排序

        var arr = [4, 1, 2, 3, 4, 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);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值