JS基础04

数组

笔记目录

  • 数组
  • 小概
  • 1. 数组的介绍
  • 2. 数组的取值与赋值
  • 3.数组长度
  • 4. 遍历数组
  • 5. 数组练习
    • 5.1 翻转数组
    • 5.2 斐波那契数列
    • 5.3 生成页面结构
  • 6. 嵌套循环
  • 总结


小概

学习内容:数组的介绍,数组的取值和赋值,数组的长度,遍历数组,数组练习,循环嵌套。接着肝

1. 数组的介绍

  1. 数组的作用: 一个变量存储多个数据
  2. 数组三要素:
    . 元素(items)
    . 下标(index)
    . 长度(length)
  3. 数组语法
    . 声明
    . 取值
    . 赋值
let array = [80,70,60,50,40,30];

2. 数组的取值与赋值

  1. 取值:数组名[下标]
    . (1) 下标存在,则获取元素值
    . (2) 下标不存在,则是返回undefined
  2. 赋值: 数组名[下标] = 值
    . (1) 下标存在,则修改元素值
    . (2) 下标不存在,则’动态添加元素’

代码如下(示例):

//1.声明数组:   let 数组名 = [ 元素1,元素2,元素3…………];
let arr = [80,90,67,69,89];
//2.取值 :   数组名[下标]
//2.1 下标存在,则是 ‘获取’ 对应下标的元素值
console.log( arr[1] );//90
//2.2 下标不存在,则获取的undefined
console.log( arr[5] );//undefined
//3.赋值 :  数组名[下标] = 值
//3.1 下标存在,则是 ‘修改' 对应下标元素值 
arr[1] = 100;
console.log( arr );
//3.2 下标不存在 ,则是 ‘动态添加’ 元素
arr[5] = 60;
console.log( arr );

3.数组长度

数组长度 = 最大下标 + 1

  1. 获取长度 : 数组名.length
  2. 设置长度 : 数组名.length = 值
  3. 长度与下标一些固定语法
    . (1)删除最后一个元素 : 数组名.length- -
    . (2)获取最后一个元素: 数组名[ 数组名.length-1 ]
    . (3)新增一个元素 : 数组名[ 数组名.length ] = 值
let arr = [80,90,67,69,89];
//1.获取数组长度 : 数组名.length
console.log( arr.length );//5
//2.设置长度 : 数组名.length = 值
/* 细节:修改了数组长度,元素数量也会修改 */
arr.length = 4;
console.log( arr );
//3.长度与下标一些固定语法
let arr1 = [10,20,30,40,50];
//3.1 删除数组最后一个元素
// arr1.length--;
// console.log( arr1 );
//3.2 获取数组最后一个元素  :  arr[ arr.length-1 ]
console.log( arr1[arr1.length-1] );//50
//3.2 给数组后面添加一个元素 :  arr[ arr.length ] = 值
arr1[ arr1.length ] = 60;
arr1[ arr1.length ] = 70;
arr1[ arr1.length ] = 80;
console.log( arr1 );

4. 遍历数组

数组遍历 : 获取数组每一个数据
固定的for循环: for(let i = 0;i < arr.length;i++){ arr[i] }

let arr = [60,88,20,50,77,90];//下标 0 1 2 3 4 5
for(let i = 0; i < arr.length;i++ ){
     //i = 0 1 2 3 4 5
    console.log( arr[i] );
};

5. 数组练习

5.1 翻转数组

        /* 翻转数组 : */
        let arr = [60,88,20,50,77]; //[77,50,20,88,60]


        /* 1.翻转法 : 好理解,代码低效
        
        1.1 倒着遍历arr
        1.2 声明一个newArr,逐一添加到newArr中
        */

        // let newArr = [];
        // //倒着遍历arr
        // for(let i = arr.length-1; i >= 0;i--){
     
        //     console.log(arr[i]);
        //     //逐一添加到newArr中
        //     newArr[ newArr.length ] = arr[i];
        // };
        // console.log(newArr);

        /* 2.交换法 :理解难,代码高效 
        2.1 遍历arr的一半
        2.2  下标为i 的元素   和 下标为arr.length-1-i元素交换
        */
        for(let i = 0;i < arr.length/2;i++){
     
            /* 第三方变量 */
            let temp = arr[i];
            arr[i] = arr[ arr.length-1-i ];
            arr[ arr.length-1-i ] = temp;
        };

        console.log( arr );

5.2 斐波那契数列

         /*斐波那契数列 
         0、1、1、2、3、5、8、13、21、34、55、89
         1.前两列数字固定: 0 ,1 
         2.从第三列开始,每一列数字都是前面两列的和
         */   
         
         /* 需求: 求第10列数字 */
         let arr = [0,1];
         for(let i = 2;i < 100;i++){
     
             arr[i] = arr[i-1] + arr[i-2];
         };

         console.log( arr );

5.3 生成页面结构

        //1.请求服务器,得到一个数组的数据
        let books = ["js语言很牛逼","C语言从入门到放弃", "编程之道:从程序员到卖麻辣烫", "颈椎病治疗指南", "JavaScript权威指南"]; 
            
        document.write('
    '); for(let i = 0;i < books.length;i++){ document.write(`
  • ${ books[i]}
  • `
    ); }; document.write('
'
);

6. 嵌套循环

 /*练习:在页面打印以下图案,每次只能打印一个星星
 
 * 
 * *
 * * *
 * * * *
 * * * * *
 
 外层循环 : 5行
 内层循环:  列
    第一行: i = 1     j = 1
    第二行: i = 2     j = 2
    第三行: i = 3     j = 3
    第i行             j = i
 */
 //外层循环: i 行
 for(let i = 1;i<=5;i++){
     
     //内层循环: 列  j = i
     for(let j = 1;j <= i;j++){
     
        document.write('* ');
     };
    document.write('
'
); };

九九乘法表:

        /* 
        九九乘法表

        外层循环:行数 i = 9
        内层循环:列数
            i = 1    j = 1列
            i = 2    j = 2列
            i = 3    j = 3列
            ………………
            i = 9    j = 9列
        */
        //外层:行
        for(let i = 1;i <= 9;i++){
     
            //内层:列
            for(let j = 1;j <= i;j++){
     
                document.write(`${
       j} * ${
       i} = ${
       i*j}`);
            };

            document.write('
'
); };

总结

加油,骚年!

-每日一抑云 我希望我是你心动的人 而不是权衡利弊后觉得不错的人” 神明把光风交给霁月 把樱花交给春天 把黑夜交给星光 把心跳交给脸红 把你交给我.

你可能感兴趣的:(js基础,javascript)