JavaScript知识点(数组和遍历数组)

172 阅读3分钟

1-数组

01.数组的定义

  • 数组就是一组数据的有序集合
  • 数组的定义:[数据,数据,数据,数据,....]

数组的三要素:

  • 元素:数组中的每一个数据就是数组中的一个元素,元素是可以任何类型
  • 下标:数组中元素的序号,序号从0开始,
  • 长度:数组中元素的个数就是数组的长度 数组名.length

查找数组中的元素 arr[2],查询数组的长度console.log(arr.length)

定义一个空数组 let arr_0 = []

         //下标     0   1   2   3   4   5                    
        let arr = [10, 20, 30, 40, 50, 60]
        console.log(arr)          //10 20 30 40 50 60
        console.log(arr[2])       //20
        console.log(arr.length)   //6
        

02.数组元素的基本操作

     let arr = [10, 20, 30, 40];
       // 这是查看数组中所有的元素
        console.log(arr)     //10 20 30 40  
        
        // 查看某个具体的元素
        // 语法:数组名[下标]
        console.log(arr[0])   //10
        console.log(arr[1])   //20    
        console.log(arr[2])   //30  
        console.log(arr[3])   //40 
        // 如果所访问的元素不存在就是undefined
        console.log(arr[10])        // undefined

        // 添加元素
        // 语法:数组名[下标] = 数据
        arr[4] = 50;
        arr[5] = 60;
        console.log(arr)

        // 修改元素
        // 在添加元素时,如果指定的下标已存在则是修改
        arr[0] = 1000;
        console.log(arr)

03.数组的元素的增删

添加元素

        //下标     0    1   2   3
        let arr = [10, 20, 30, 40];
        arr[10] = 50;    
        console.log(arr);  //10 20 30 40....50
        
        arr[3] = 22;   如果下标3的元素已经存在,那就修改
        console.log(arr);  //10 22  30  22

头部操作

  • 数组名.unshift(数据)在头部添加加元素(unshift推荐)
  • 数组名.shift()在数组头部删除元素(shift推荐)
  let arr = ['one','two','three'];
  arr.unshift('40')   //在头部添加加元素
  console.log(arr);     //'one','two','three','40'
  
  arr.shift();   //在头部删除元素
  console.log(arr);   //'one','two','three'

中间操作

  • 数组名.splice(起始下标,删除个数,新元素,新元素...)
  • 从 起始下标 开始,删除指定个数的元素,还可以在被删除的位置插入新的元素
        let arr = [10, 20, 30, 40, 50,60, 70,80,90,100,110];
        // arr.splice(1,2);
        // arr.splice(1);
        // arr.splice(1,2,'a','b','c','d');
        arr.splice(1,0,'a','b','c','d');
        console.log(arr);

尾部操作

  • 数组名.push(新数据) 在最后追加元素(push推荐)
  • 数组名.pop() 删除最后的元素(pop推荐)
         let arr = [10, 20, 'two'];
         arr.push('hello')
         console.log(arr)
         arr.push(22)  //在最后追加元素(push推荐)     
         console.log(arr) // 10 20 'two' 22
         
         arr.pop();    //删除最后的元素(pop推荐)
         console.log(arr) // 10 20 'two' 

02.数组的遍历语法

由于某种需求,需要对数组中的每个元素都访问一次,这就是遍历,

        let arr = ['zhangsan', 'lisi',  20, 30,50];

        // 使用for循环的控制变量来模拟数组的下标
        for(let i=0;i < arr.length ;i++){
            // console.log(i);
            // 将循环控制变量作为数组的下标
            console.log(arr[i]);    //'zhangsan', 'lisi',  20, 30,50
        }

固定语法:

  • 使用循环控制变量来模拟数组下标的规律
  • 循环体内,将循环控制变量作为数组的下标
  • 循环控制变量 < 数组.length 作为表达式
let arr = ['abc', 'xyz', 'hello', 'world', 'adys'];
for(let i=0;i< arr.length;i++){                                       
 console.log(i, arr[i])   
 }

03.代码练习

(1)求数组中最大的值,并打印出来

let arr = [20, 30, 8, 40, 12, 24, 15];
        // 1. 先定义一个变量 max 将数组中的0号元素赋值给max
     let max = arr[0]
        // 2. 从1号下标开始遍历数组
     for(let i=1; i<arr.length; i++){
         // 3. 将遍历 到的元素 与 max里的值进行比较
           if(arr[i] > max){
                // 4. 如果 遍历到的元素 比 max里的大,就覆盖max里的值
                max = arr[i]
          }
      }
        console.log(max)   //40

(2)求数组所有值的和

        let arr = [98, 87, 92, 80, 91, 100];
        let atr = 0;
        for (let i=0;i<arr.length;i++){
            // atr = atr +arr[i];
            atr+=arr[i];
        }
        alert(atr);  //548

(3) 将数组中大于10的元素筛选出来,保存到一个新的数组中。

      let arr = [5, 12, 8, 11, 9, 15, 20];
      let atr = [];
      for (let i=0;i<arr.length;i++){
          if (arr[i]>10){   //添加arr[i]>10的条件
              atr.push(arr[i])   //利用push在atr 尾部添加arr>10的元素
            }
         }
         alert(atr);   //12 11 15 20

(4) 将元素0删除掉(数组塌陷)

      //debugger
        let arr = [0,8,0,10,0,10,14,0,40,0,0,8];
        for (let i=0; i<arr.length; i++){
            if (arr[i]==0){
                arr.splice(i,1);
                i--;  //解决了 塌陷问题
            }
        }
        alert(arr);     //8 10 10 14 40 8