数组、for循环(基础)

这篇具有很好参考价值的文章主要介绍了数组、for循环(基础)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 一、数组


    //数组是一种有序的数据格式.(纯对象是无序的)
    用arr存储了3个数据,1,2,3
    const arr = [1,2,3];

    let x = 1;
    let y = 2;
    let z = 3;
  • 创建数组方法
        1.let arr = [1, 2, 3];
        2.let arr = new Array(1, 2, 3);
//   class01表示一个数组.
    // '张三', '王五', '李四', '赵六 => 数组的成员(元素).
    // 每个元素之间用,隔开. 书写时,后面有空格.
    const class01 = ['张三', '王五', '李四', '赵六'];
    // 通过下标(索引)来访问数组的元素.
    // 数组的下标默认从0开始,依次+1.
    // 下标 => 元素的门牌号.
    console.log(class01[3]);
    console.log(class01[2]);
    console.log(class01[1]);
    console.log(class01[0]);
    
  •  数组的长度(.length)
// length属性表示数组的元素个数.(也是数组的长度)
    console.log(class01.length);

增删改查
     增 => 数组[下标] = 新的值
     改 => 数组[下标] = 新的值
     查 => 数组[下标] 

    // 在最后的位置插入一个新元素.
    class0621[4] = '小陈';
    // 5-9的位置没有元素.这时数组的length是11而不是6.有5个空的元素.
    class0621[10] = '小邓';
    // 不存在的元素,空的元素,返回undefined.(访问对象不存在的属性也是undefined)
    console.log(class0621[5]);
    // 修改第一个元素
    class0621[0] = '小张';

二、获取元素

<body>
  
  <div>111</div>
  <div>222</div>
  <div>333</div>
  <div>444</div>
  <div>555</div>
</body>

 querySelectorAll参数是选择器 => 获取匹配选择器的所有元素.

    然后返回一个存储着这些元素的数组.

    aDiv就是一个存储着5个div的数组.

  • 单个标签推荐o开头,数组推荐用a开头.
    const aDiv = document.querySelectorAll('div');
  •  通过aDiv可以访问所有的标签
    console.log(aDiv);
  • 通过下标访问对应的标签 
    console.log(aDiv[2]);
  • 通过下标修改指定标签样式.
aDiv[2].style.backgroundColor = 'red';
  • 获取的标签个数
    console.log(aDiv.length);

不能通过aDiv新增元素来在页面上新增标签。

页面上不会多出一个标签。

aDiv[5] = '<div>666</div>';

三、其他获取元素方法

<body>
  
  <div>111</div>
  <div>222</div>
  <div class='active'>333</div>
  <div class='active'>444</div>
  <div>555</div>
</body>
  • getElementsByTagName 的参数是标签名.
  • 能够获取指定标签的元素.
  • document.getElementsByTagName('div') => 只获取div标签
    const aDiv = document.getElementsByTagName('div');
    console.log(aDiv.length);

  • 获取匹配选择器.active的所有标签。
    const aActive = document.querySelectorAll('.active');
    console.log(aActive);

getElementsByClassName => 参数是类名.

    const aBox = document.getElementsByClassName('active');
    console.log(aBox);

四、获取元素

<body>
  
  <div>
    <input class='active' type="text" />
    <input class='active' type="text" />
    <input class='active' type="text" />
    <input class='active' type="text" />
    <input class='active' type="text" />
    <p class='active'>pppp</p>
  </div>
  <div>
    <input class='active' type="text" />
    <input class='active' type="text" />
  </div>
</body>

如果想要获取第一个div内的5个input,那么我们要怎么去获取?

  • document => 整个页面 
  • document.querySelectorAll('[type="text"]') => 在整个页面中找input
 const aInput = document.querySelectorAll('[type="text"]');    
    console.log(aInput);// 7个
    const aDiv = document.querySelectorAll('div');
  • 在第一个div中找input 
    const aIn = aDiv[0].querySelectorAll('input');
    console.log(aIn);// 5个
  • 在第一个div中找input标签
    const aIn = aDiv[0].getElementsByTagName('input');
    console.log(aIn);// 5个

  • 在第一个div中找类是active的标签. 
    const aIn = aDiv[0].getElementsByClassName('active');
    console.log(aIn);// 5个

五、单个元素的数组

<body>
  
  <div>11111</div>
</body>
     // document.getElementsByClassName('active');
    // document.getElementsByTagName('div');
    const aDiv = document.querySelectorAll('div');
    // 只有一个元素,aDiv也是一个数组
    console.log(aDiv);
// 访问唯一的元素,也必须添加下标.
    // 通过下标修改标签背景色
    // aDiv[0].style.backgroundColor = 'red';

    // 修改数组的style属性的backgroundColor属性
    // 数组是没有style属性的,隐藏style属性是undefined.
    // 通过undefined修改backgroundColor属性,会报错.
    // Cannot set property 'backgroundColor' of undefined(报错信息)
    aDiv.style.backgroundColor = 'red';

    console.log(aDiv.style);

六、循环

循环 => 批量处理相同的代码逻辑 => 可以减少重复的代码。

  • 语法 => for (表达式1; 表达式2; 表达式3) { 重复执行的代码 }
  • 循环什么时候会停止? => 表示式2返回false,循环就停止.返回true就一直循环.
  • 永远停不下来的循环 => 死循环.
    console.log(100);
    console.log(100);
    console.log(100);
    console.log(100);
    console.log(100);//列如几段没有用for循环来优化,则会出现很多的重复代码
  • 表达式1 => 从几开始数数
  •     表达式2 => 数到几
  •     表达式3 => 几个几个数
  •     let i = 0 => 从0开始数
  •     i < 5 => 数到4
  •     i++ => 一个一个数
for (let i = 0; i < 5; i++) {
      console.log(100);
    }
for (let i = 10; i < 15; i++) {
      console.log(100);
    }
for (let i = 10; i < 20; i += 2) {
      console.log(100);
    }
for (let i = 15; i > 10; i--) {
      console.log(100);
    }
 // 从20开始倒着数,每次数-2.
    for (let i = 20; i > 10; i -= 2) {
      console.log(100);
    }

七、循环计数

 以下三种形式,前两种是用简单的硬代码来写最后一种用for循环,可想而知使用for循环代码量的简化也会大大提高了工作效率。

    // console.log(100);
    // console.log(200);
    // console.log(300);
    // console.log(400);
    // console.log(500);

    //硬代码
    // let i = 1;
    // console.log(100 * i);
    // i++;
    // console.log(100 * i);
    // i++;
    // console.log(100 * i);
    // i++;
    // console.log(100 * i);
    // i++;
    // console.log(100 * i);

    // 循环中的变量i => 循环计数
    // 每次循环,i的值都会变化.
    // i的值如何变化,取决于第三个表达式.
    for (let i = 1; i < 6; i++) {
      console.log(i);// 1,2,3,4,5
      console.log(100 * i);
    }
 let arr = ['张三', '李四', '王五', '赵六'];

    // console.log(arr[0]);
    // console.log(arr[1]);
    // console.log(arr[2]);
    // console.log(arr[3]);

    // let i = 0;
    // console.log(arr[i]);
    // i++;
    // console.log(arr[i]);
    // i++;
    // console.log(arr[i]);
    // i++;
    // console.log(arr[i]);

    for (let i = 0; i < 4; i++) {
      console.log(arr[i]);
    }
    //硬代码表示方式
    console.log('你1');
    console.log('我2');
    console.log('他3');

    console.log('你4');
    console.log('我5');
    console.log('他6');
    
    console.log('你7');
    console.log('我8');
    console.log('他9');
    let arr = ['你', '我', '他'];

    for (let i = 1; i < 10; i++) {
      console.log(arr[(i-1) % 3] + i);
    }

    for (let i = 0; i < 3; i++) {
      console.log('你' + (i * 3 + 1));
      console.log('我' + (i * 3 + 2));
      console.log('他' + (i * 3 + 3));
    }

    for (let i = 1; i < 10; ) {
      console.log('你' + i++);
      console.log('我' + i++);
      console.log('他' + i++);
    }

八、循环时如何运行的

for (表达式1;表达式2;表达式3) { 表达式4 };

    以上表达式的执行顺序如何的?

    表达式1 => 表达式2 => 表达式4 => 表达式3 => 表达式2 => 表达式4 => 表达式3 => .... => 直到表达式2返回false...

for (let i = 0; i < 3; i++) {
      console.log(i);// 0,1,2
    }
   //硬代码表示方式
    let i = 1;
    i < 10;

    console.log('你' + i++);
    console.log('我' + i++);
    console.log('他' + i++);

    i < 10;

    console.log('你' + i++);
    console.log('我' + i++);
    console.log('他' + i++);

    i < 10;

    console.log('你' + i++);
    console.log('我' + i++);
    console.log('他' + i++);
    // i < 10 => false 停止循环打印

    for (let i = 1; i < 10;) {
      console.log('你' + i++);
      console.log('我' + i++);
      console.log('他' + i++);
    }

九、continue

continue => 跳过当前循环,继续后面的循环。

    let arr = [1,2,3,4,5];
    for (let i = 0; i < 5; i++) {
      if (i == 2) {
        // 跳过当前循环,不执行continue后面的代码。后续循环还继续执行。
        continue;
      }
      console.log(arr[i]);
    }

 硬代码表示方法。

    let i = 0;
    if (i != 2) {
      console.log(arr[i]);
    }
    i++;

    if (i != 2) {
      console.log(arr[i]);
    }
    i++;

    if (i != 2) {
      console.log(arr[i]);
    }
    i++;

    if (i != 2) {
      console.log(arr[i]);
    }
    i++;

    if (i != 2) {
      console.log(arr[i]);
    }

十、break

      break => 终止整个循环。 

     let arr = [1,2,3,4,5];
 
    for (let i = 0; i < arr.length; i++) {
      console.log(arr[i]);
      // 下标是2时,就终止整个循环。(提前结束循环)
      if (i == 2) {
        break;
      }
    }

当一个死循环一直循环时,可以用上break来直接终止整个循环。 

for (;;) {
      // 返回true表示用户点击确定,返回false表示用户选择取消
      let flag = confirm('你喜欢我吗?');
      // 如果用户点击确定,就终止这个死循环.
      if (flag) {
        alert('我也喜欢你');
        break;
      }
    }

十一、循环处理DOM

<style>
        div{
            width: 200px;
            height: 200px;
            border:1px solid #000;
        }
    </style>
</head>
<body>
    
    <button id='btn1'>隐藏div</button>
    <button id='btn2'>改变颜色</button>
    <div id='div1' style="display:none">11111</div>
    <div id='div2' style="display:block">22222</div>
</body>
<script>

        // 点击 第一个按钮,隐藏显示的div.显示被隐藏的div.(谁显示隐藏谁,谁隐藏显示谁)
        // 点击 第二个按钮,把显示的div的背景改成红色.隐藏的div的背景色清空.(白色)

        const aBtn = document.querySelectorAll('button');
        const aDiv = document.querySelectorAll('div');

        aBtn[0].onclick = function() {
          // 循环两个div设置隐藏或显示
          for (let i = 0; i < aDiv.length; i++) {
            if (aDiv[i].style.display === 'none') {
              aDiv[i].style.display = 'block';
            } else if (aDiv[i].style.display === 'block'){
              aDiv[i].style.display = 'none';
            }
          }
        }

        aBtn[1].onclick = function() {
          // 循环两个div设置背景色
          for (let i = 0; i < aDiv.length; i++) {
            if (aDiv[i].style.display === 'block') {
              aDiv[i].style.backgroundColor = 'red'
            } else if (aDiv[i].style.display === 'none') {
              aDiv[i].style.backgroundColor = ''
            }
          }
        }

    </script>

十二、循环添加事件

<body>
  
  <ul>
    <li>11111</li>
    <li>22222</li>
    <li>33333</li>
    <li>44444</li>
    <li>55555</li>
    <li>66666</li>
  </ul>
</body>

 for循环表达方式

<script>

    // 点击每个li,都弹他自己的内容.
    
    const aLi = document.querySelectorAll('li');

    for (let i = 0; i < aLi.length; i++) {
      aLi[i].onclick = function() {
        alert(aLi[i].innerText)
      }
    }

    
  </script>

 硬代码表达方式文章来源地址https://www.toymoban.com/news/detail-449549.html

    aLi[0].onclick = function() {
      alert(aLi[0].innerText)
    }

    aLi[1].onclick = function() {
      alert(aLi[1].innerText)
    }

    aLi[2].onclick = function() {
      alert(aLi[2].innerText)
    }

到了这里,关于数组、for循环(基础)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Java 基础】for 循环、嵌套循环详解(附案例)

    《 Java 零基础入门到精通 》 专栏持续更新中。通过本专栏你将学习到 Java 从 入门 到 进阶 再到 实战 的全套完整内容,所有内容均将集中于此专栏。无论是初学者还是有经验的开发人员,都可从本专栏获益。 订阅专栏后添加我微信或者进交流群,进群可找我领取 前端/Java

    2023年04月08日
    浏览(29)
  • 【数据结构OJ题】删除有序数组中的重复项

    原题链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-array/ 目录 1. 题目描述 2. 思路分析 3. 代码实现 用 双指针算法, 定义两个变量src和dst,一开始让src和dst指向num[ ]数组的第一个元素,再使用if语句判断。 如果nums[src]==nums[dst],就让src指向下一位,即src++。如果nums[src]!=

    2024年02月14日
    浏览(27)
  • Kotlin基础入门 - for、forEach 循环

    不论身处何方 for循环这种操作都随处可见,鉴于大多数Android开发都是从Java转到Kt的,所以我的思路是从Java的使用习惯来讲一些Kt 的for、forEach 循环方式 基础 for循环 for循环 一般作用于 list、map数据集合 ,这里我直接创建了一个只读List集合 提前了解 惯性 for循环 所谓的惯性

    2024年01月16日
    浏览(29)
  • 【Python基础】- for/while循环语句

      🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 目录 Python循环语句 while循环 无限循环 while 循环使用 else 语句 for 循环 range对象 列表推导

    2024年02月09日
    浏览(38)
  • 【Python入门篇】——Python中循环语句(for循环的基础语法)

    作者简介: 辭七七,目前大一,正在学习C/C++,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: Python入门,本专栏主要内容为Python的基础语法,Python中的选择循环语句,Python函数,Python的数据容器等。 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖 除了while循环语句外

    2024年02月06日
    浏览(39)
  • perl脚本语言学习1——基础篇:变量、数组、哈希数组、循环、文件、函数

    2023.3.18 今天下载虚拟机把电脑磁盘内容弄到乱七八糟,难受 发现每次学习遇到一个坎,感觉面前是一座大山,越过去之后又对前途充满了希望 perl:practical extraction report language 实用提取和报表语言 从字面上看主要与文本处理相关 变量定义: my 存储 数字、字符、字符

    2024年02月12日
    浏览(59)
  • 6.Simulink基础建模操作——矩阵运算、for循环

    欢迎订阅《FPGA/MATLAB/SIMULINK系列教程》 目录 1.基于Simulink的矩阵运算建模 1.1矩阵加法 1.2矩阵减法 1.3矩阵乘法

    2023年04月09日
    浏览(31)
  • 【每日算法 && 数据结构(C++)】—— 03 | 合并两个有序数组(解题思路、流程图、代码片段)

    An inch of time is an inch of gold, but you can’t buy that inch of time with an inch of gold. An inch of time is an inch of gold, but you can\\\'t buy that inch of time with an inch of gold 给你两个有序数组,请将两个数组进行合并,并且合并后的数组也必须有序 这个题目要求将两个有序数组合并成一个有序数组。在数

    2024年02月11日
    浏览(39)
  • 【python】Python基础语法详细教程以及案例教学之 while循环语句、while语句嵌套应用、for循环语句、for语句嵌套应用、循环中断

    目录  前言 一、while循环的基础语法  1)什么是while语句?  2)如何具体实现while语句? 二、while循环的基础案例 1)案例一:  2)案例二: 三、while循环的嵌套应用 1)学习目标: 2)什么是while循环的嵌套 3)如何实现while嵌套? 四、while循环的嵌套案例 1)学习目标 2)补充

    2024年01月25日
    浏览(52)
  • 【算法 & 高级数据结构】树状数组:一种高效的数据结构(一)

    🚀 个人主页 :为梦而生~ 关注我一起学习吧! 💡 专栏 :算法题、 基础算法~赶紧来学算法吧 💡 往期推荐 : 【算法基础 数学】快速幂求逆元(逆元、扩展欧几里得定理、小费马定理) 【算法基础】深搜 树状数组 (Binary Indexed Tree,BIT)是一种数据结构,用于高效地处理

    2024年03月11日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包