四、数组及其基本操作(遍历、增删、排序)、循环嵌套、slice、for...of

JavaScript数组方法大全与实战解析 pop方法用于删除数组最后一个元素,并返回被删除的值。// 4逐行解读:第1行:初始化数组arr。第2行:调用pop删除最后一个元素4。第3行:输出修改后的数组。第4行:输出被删除的元素。性能分析:pop的时间复杂度为 O(1),是非常高效的删除操作。优先使用push和pop:效率高,适合大多数场景。避免频繁使用unshift和shift:尤其在大型数组中性能较差。使用不可变更新策略。 阅读详情

1. 数组Array

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    // 数组Array 引用数据类型
    let names = ['Tom', 'Jerry', 'Jack', 'Rose']

    // 控制台打印整个数组
    console.log(names)

    // 拿到数组某个元素 元素索引/下标
    console.log(names[2])

    // 数组长度
    console.log(names.length)

    // 拿到最后一个元素
    console.log(names[names.length - 1]) 
  </script>
</body>

</html>

遍历数组

数组求和及平均数

数组最大值最小值

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

  <script>
    let names = ['Tom', 'Jerry', 'Jack', 'Rose']

    // for loop 可生成for循环框架
    /* for (let i = 0; i < array.length; i++) {
      // const element = array[i];
    } */

    // 遍历数组
    for (let i = 0; i < names.length; i++) {
      // console.log(names[i])
    }

    // 数组求和
    let nums = [2, 6, 1, 7, 4]
    let sum = 0
    for (i = 0; i < nums.length; i++) {
      sum += nums[i]
    }
    console.log(`
    数组共有${nums.length}个元素,
    其元素总和为${sum},
    其平均值为${sum / nums.length}
    `)


    let nums2 = [10, 2, 100, 6, 1, 25, 7]
    console.log(nums2.length)
    // 数组最大值
    let max = nums2[0]
    for (let i = 1; i < nums2.length; i++) {
      max = max > nums2[i] ? max : nums2[i]
    }
    console.log(max)

    // 数组最小值
    let min = nums2[0]
    for (let i = 1; i < nums2.length; i++) {
      min = min < nums2[i] ? min : nums2[i]
    }
    console.log(min)
  </script>
</body>

</html>

数组 增删改查

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

  <script>
    let names = ['小红', '小明', '大强']

    // 查 根据数组元素下标查找
    // console.log(names[0]) // 小红
    // console.log(names[100]) // undefined

    // 改
    // names[0] = '修改数据'

    // 增
    // names[3] = 'jack'
    // 未连续增加数据,下标4和5的元素为空属性
    // names[6] = 'jack'

    // unshift 开头增加,返回值是当前数组的长度
    // console.log(names.unshift('jack'))

    // push 结尾增加,返回值是当前数组的长度
    // console.log(names.push('rose'))

    // 删
    // shift 开头删除,返回值是删除的数据
    // console.log(names.shift())

    // pop 结尾删除,返回值是删除的数据
    // console.log(names.pop())

    // names.splice (索引,删除数据的个数,增加的数据1,增加的数据2...)
    // splice 返回值为被删除元素组成的数组
    // console.log(names.splice(1, 1))

    console.log(names)
  </script>
</body>

</html>

数组筛选

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

  <script>

    let nums = [2, 0, 6, 1, 77, 0, 52, 10, 18, 29, 45, 5]
    console.log(nums)

    // 筛选出大于等于10的数据 放到新数组中
    let arr1 = []
    for (let i = 0; i < nums.length; i++) {
      if (nums[i] >= 10) {
        arr1.push(nums[i])
      }
    }
    console.log(arr1)

    // 数组去0
    let arr2 = []
    for (let i = 0; i < nums.length; i++) {
      if (nums[i] !== 0) {
        arr2.push(nums[i])
      }
    }
    console.log(arr2)
  </script>
</body>

</html>

案例1-手风琴

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>手风琴案例</title>
  <style>
    .accordion {
      display: flex;
      overflow: hidden;
      width: 1120px;
      height: 260px;
      margin: 50px auto;
    }

    .accordion>div {
      width: 120px;
      border: 1px solid #fff;
      transition: all 0.5s;
    }

    .accordion>div:hover {
      width: 400px;
    }
  </style>
</head>

<body>
  <div class="accordion box">
    <!-- <div><img src="./images/1.jpg" alt=""></div>
    <div><img src="./images/2.jpg" alt=""></div>
    <div><img src="./images/3.jpg" alt=""></div>
    <div><img src="./images/4.jpg" alt=""></div>
    <div><img src="./images/5.jpg" alt=""></div>
    <div><img src="./images/6.jpg" alt=""></div>
    <div><img src="./images/7.jpg" alt=""></div> -->
  </div>

  <!-- scr属性不加引号不报错,HTML容错解析
  示例代码:<img src=images/photo.jpg alt=家庭照片>
  
  如果images/photo.jpg路径中不包含空格或特殊字符,
  并且alt属性的值也不包含这些字符,
  那么上述代码在大多数浏览器中都能够正确解析和显示图像。
  然而,这种做法并不符合HTML规范,也不建议在实际开发中使用。 -->

  <script>
    let arr = [
      './images/1.jpg',
      './images/2.jpg',
      './images/3.jpg',
      './images/4.jpg',
      './images/5.jpg',
      './images/6.jpg',
      './images/7.jpg',
    ]
    // console.log(arr[0]);

    // 1. 课上方法 构建字符串(性能高)
    /* 
      在实际开发中,推荐使用文档片段(未学)或先构建字符串再一次性更新 DOM 的方法,
      以避免频繁操作 DOM 带来的性能问题。同时,这种方法也更具可读性和可维护性。
    */
    let str = ''
    for (let i = 0; i < arr.length; i++) {
      str += `<div><img src="${arr[i]}" alt=""></div>`
    }
    // console.log(str);
    document.querySelector('.box').innerHTML = str
    /*
      好处:
        ①. 性能优化:通过先构建字符串 str,然后一次性设置 innerHTML,可以减少对 DOM 的多次操作,从而提高性能。
        ②. 代码清晰:字符串拼接逻辑与 DOM 操作分离,代码更易于理解和维护。
      坏处:
        内存占用:当 arr 很大时,字符串 str 可能会占用大量内存。
    */

    // 2. 自做
    /* for (let i = 0; i < arr.length; i++) {
      document.querySelector('.accordion').innerHTML += `
        <div><img src="${arr[i]}" alt=""></div>
      `
    } */
    /*
      好处:
        简单直接:代码简单直观,易于理解。
      坏处:
        ①. 性能问题:每次循环都会修改 .accordion 的 innerHTML,这会导致浏览器重新解析和渲染整个 .accordion 元素的内容,效率低下,特别是在 arr 很大时。
        ②. 潜在的错误:如果 .accordion 在 DOM 中不存在,每次循环都会抛出错误。
    */

  </script>
</body>

</html>

数组排序

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

  <script>
    let arr = [100, 20, 40, 5, 23, 70, 120, 56]
    console.log(arr) // [100, 20, 40, 5, 23, 70, 120, 56]

    // sort 会改变原数组
    // sort 自带功能 → 遍历
    // 升序 元素数值小的在前面

    // 1.升序排列写法
    arr.sort(function (a, b) {
      return a - b
    })
    console.log(arr) // [5, 20, 23, 40, 56, 70, 100, 120]

    // 2.降序排列写法
    arr.sort(function (a, b) {
      return b - a
    })
    console.log(arr) // [120, 100, 70, 56, 40, 23, 20, 5]

  </script>
</body>

</html>

2. 循环嵌套

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

  <!-- 循环嵌套:外部循环每循环一次,内部循环执行所有次 -->
  <script>
    // 生气 道歉 一天三遍 三天
    for (let i = 0; i < 3; i++) {
      console.log(`第${i + 1}天`)

      for (let j = 0; j < 3; j++) {
        console.log(`第${i + 1}天第${j + 1}遍,巴拉巴拉错了`)
      }
    }
  </script>
</body>

</html>

案例2-生成电影院座位

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>电影院座位</title>
  <link rel="stylesheet" href="./fonts/iconfont.css">
  <link rel="stylesheet" href="./css/index.css">
</head>

<body>
  <div class="movie"></div>
  <div class="cinema">
    <!-- <div class="row">
      <i class="iconfont icon-zuowei"></i>
    </div>
    <div class="row"></div>
    <div class="row"></div>
    <div class="row"></div>
    <div class="row"></div>
    <div class="row"></div> -->
  </div>

  <!-- 课上讲解 -->
  <script>
    // 数组数据的个数用来表示座位数
    // 数组内包数组 二维数组
    // 二维数组取数据 seats[0][0] → seats二维数组的第一个数组元素的第一个值
    let seats = [
      [0, 0, 0, 0, 0],
      [0, 0, 0, 0, 0],
      [0, 0, 1, 1, 1, 1, 0, 0],
      [0, 0, 1, 1, 0, 1, 1, 0, 0],
      [0, 1, 1, 1, 1, 0],
      [0, 0, 0, 0, 0, 0],
    ]

    // 只有每行拼接
    /* for (let i = 0; i < seats.length; i++) {
      let str = ''
      for (let j = 0; j < seats[i].length; j++) {
        str += seats[i][j] !== 1 ? `<i class="iconfont icon-zuowei"></i>` : `<i class="iconfont icon-zuowei" style="color: blue;"></i>`
      }
      document.querySelector(`.row:nth-child(${i + 1})`).innerHTML = str
    } */

    // 所有都拼接
    let str = ''
    for (let i = 0; i < seats.length; i++) {
      let strI = ''
      for (let j = 0; j < seats[i].length; j++) {
        strI += seats[i][j] !== 1 ? `<i class="iconfont icon-zuowei"></i>` : `<i class="iconfont icon-zuowei" style="color: blue;"></i>`
      }
      str += `<div class="row">${strI}</div>`
    }
    document.querySelector('.cinema').innerHTML = str
  </script>

  <!-- 自做 未用字符串拼接 性能差 -->
  <!-- <script>
    // 数组数据的个数用来表示座位数
    let seats = [
      [0, 0, 0, 0, 0],
      [0, 0, 0, 0, 0],
      [0, 0, 1, 1, 1, 1, 0, 0],
      [0, 0, 1, 1, 0, 1, 1, 0, 0],
      [0, 1, 1, 1, 1, 0],
      [0, 0, 0, 0, 0, 0],
    ]

    for (let i = 0; i < seats.length; i++) {
      let row = seats[i]

      for (let j = 0; j < row.length; j++) {
        // .row:nth-child(6)

        // 出现问题 .row:nth-child(${i})错误 i起始值为0 找不到第0个row 为空
        // document.querySelector(`.row:nth-child(${i})`).innerHTML += `

        // 正确做法
        /* document.querySelector(`.row:nth-child(${i + 1})`).innerHTML += `
          <i class="iconfont icon-zuowei"></i>
        ` */

        // 进阶 根据座位是否有人已购票渲染座位颜色
        /*  if (row[j] !== 1) {
           document.querySelector(`.row:nth-child(${i + 1})`).innerHTML += `
             <i class="iconfont icon-zuowei"></i>
           `
         } else {
           // 行内css书写方式 <p style="color: blue; font-size: 20px;">这是一个带有内联样式的段落。</p>
           document.querySelector(`.row:nth-child(${i + 1})`).innerHTML += `
             <i class="iconfont icon-zuowei" style="color: blue;"></i>
           `
         } */
      }
    }

  </script> -->
</body>

</html>

案例3-生成快捷导航

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <link rel="stylesheet" href="./fonts/iconfont.css">
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    nav {
      padding-top: 16px;
      padding-bottom: 24px;
      background: #3f7ef7;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    nav .txt {
      background-color: #588ff8;
      padding: 0px 11px 0 4px;
      color: white;
      height: 26px;
      font-size: 14px;
      border-radius: 13px;
      margin: 0 5px;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .search {
      background-color: #3f7ef7;
      text-align: center;
      padding-top: 24px;
      margin: 0 auto;
    }

    .search-wrapper {
      margin: 0 auto;
      width: 40%;
      position: relative;
    }

    input {
      padding-left: 60px;
      width: 100%;
      height: 40px;
      border: none;
      outline: none;
      border-radius: 4px;
    }

    header {
      width: 1440px;
      height: 54px;
      margin: 0 auto;
    }

    header img {
      width: 1440px;
      height: 54px;
      display: block;
    }

    .web-icon {
      width: 28px;
      height: 28px;
      position: absolute;
      top: 6px;
      left: 6px;
    }

    .web-icon img {
      width: 100%;
      height: 100%;
      display: block;
    }

    .triangle {
      position: absolute;
      top: 12px;
      left: 38px;
      width: 16px;
      height: 16px;
      line-height: 16px;
      color: #c3c8d0;
      font-size: 12px;
    }

    .txt .iconfont {
      width: 20px;
      height: 20px;
      border-radius: 10px;
      color: white;
      background-color: black;
      text-align: center;
      line-height: 20px;
      margin-right: 6px;
    }

    .icon-github {
      color: white;
      background-color: black;
    }
  </style>
</head>

<body>
  <header>
    <img src="./images/juejin.png" alt="">
  </header>

  <div class="search">
    <div class="search-wrapper">
      <input type="text" placeholder="输入关键词 | tab键切换搜索引擎">
      <div class="web-icon">
        <img src="./images/chrome.png" alt="">
      </div>

      <span class="triangle iconfont icon-xiangxia"></span>
    </div>
  </div>

  <!-- nav H5新增的标签 导航标签 -->
  <nav>
    <!-- <span class="txt">
      <span class="iconfont icon-github"></span>
      github
    </span> -->
  </nav>

  <script>
    // 需求:用户输入2个导航名称,显示到导航区域

    // 默认导航内容
    let navs = ['百度', '抖音', '淘宝']

    /* navs.push(prompt('请输入添加导航名称'))
    navs.push(prompt('请输入添加导航名称')) */
    for (let i = 1; i <= 2; i++) {
      navs.push(prompt('请输入添加导航名称'))
    }

    let str = ''
    for (let i = 0; i < navs.length; i++) {
      str += `
        <span class="txt">
          <span class="iconfont icon-github"></span>
          ${navs[i]}
        </span>
      `
    }
    // console.log(str)
    document.querySelector('nav').innerHTML = str
  </script>

  <!-- 自做 未用字符串拼接 -->
  <!-- <script>
    let navs = ['百度', '抖音', '淘宝']
    navs.push(prompt('请输入添加导航名称'))
    navs.push(prompt('请输入添加导航名称'))
    for (let i = 0; i < navs.length; i++) {
      document.querySelector('nav').innerHTML += `
      <span class="txt">
        <span class="iconfont icon-github"></span>
        ${navs[i]}
      </span>
    `
    }
  </script> -->
</body>

</html>

案例4-九九乘法表

<!-- 课上讲解 -->
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    span {
      /* 转换为行内块元素 → 一行可以共存,宽高还能生效 */
      display: inline-block;
      /* padding: 2px 5px; */
      width: 70px;
      /* height: 30px; */
      border: 1px solid lightcoral;
      padding-left: 5px;
    }
  </style>
</head>

<body>

  <!-- <p>
    <span></span>
  </p> -->

  <script>
    // 九九乘法表
    let strI = ''
    for (let i = 1; i <= 9; i++) {
      let strJ = ''
      for (let j = 1; j <= i; j++) {
        strJ += `<span>${j}×${i}=${j * i}</span>`
      }
      strI += `<p>${strJ}</p>`
    }
    document.write(strI)
  </script>
</body>

</html>


<!-- 自做 -->
<!-- <!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    table {
      border-collapse: collapse;
      margin: 0 auto;
      color: hotpink;
    }

    td {
      border: 1px solid blueviolet;
      padding: 3px 8px;
    }
  </style>
</head>

<body>

  <table>
  </table>

  <script>
    // 九九乘法表
    let strRow = ''
    for (let i = 1; i <= 9; i++) {
      let str = ''
      for (let j = 1; j <= i; j++) {
        str += `<td>${j}×${i}=${i * j}</td>`
      }
      strRow += `<tr>${str}</tr>`
    }
    document.querySelector('table').innerHTML = strRow
  </script>
</body>

</html> -->

3. 作业

3.1 数组版-渲染王者荣耀头像

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .box {
      width: 600px;
      margin: 0 auto;
      display: flex;
      flex-wrap: wrap;
    }

    img {
      width: 100px;
      height: 100px;
      border-radius: 10px 0;
      border: 2px solid blue;
      margin-bottom: 10px;
      margin-right: 10px;
    }
  </style>
</head>

<body>

  <div class="box">
    <!-- <img src="./images/1.webp" alt=""> -->
  </div>

  <!-- 
    根据用户输入的个数,页面可以渲染对应王者荣耀英雄的个数
  -->
  <script>
    // 图片路径数组
    let arr = []
    for (let i = 1; i <= 20; i++) {
      arr.push(`./images/${i}.webp`)
    }

    // 判断输入数字是否复合规范
    for (; ;) {
      let num = +prompt('请输入1~20个之间的英雄的个数:')
      if (num > 0 && num <= 20) {
        let str = ''
        for (let i = 0; i < num; i++) {
          str += `<img src="${arr[i]}" alt="">`
        }
        document.querySelector('.box').innerHTML = str
        break
      } else {
        alert('输入数字错误,请输入正确的数字哦')
      }
    }

  </script>
</body>

</html>

3.2 slice

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

  <script>
    // 参考网址
    // https://wangdoc.com/javascript/stdlib/array#slice

    // 实现对 数组 arr 进行快速复制得到新数组
    let arr = [10, 20, 30]
    console.log(arr)

    let newArr = arr.slice()
    console.log(newArr)

  </script>
</body>

</html>

3.3 for...of

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

  <script>
    // 参考网址
    // https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Statements/for...of

    // 使用for...of 语句来遍历数组,进行求和
    let arr = [10, 20, 30]

    let sum = 0
    for (let i of arr) {
      sum += i;
    }
    console.log(sum);
  </script>
</body>

</html>

3.4 选择排序算法

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

  <script>
    // 选择排序算法
    let arr = [4, 2, 5, 1, 3]
    for (let i = 0; i < arr.length - 1; i++) {
      for (let j = 0; j < arr.length - i - 1; j++) {
        // 开始交换 但是前提第一个数大于第二个数才交换
        if (arr[j] > arr[j + 1]) {
          // 交换2个变量
          let temp = arr[j]
          arr[j] = arr[j + 1]
          arr[j + 1] = temp
        }
      }
    }
    console.log(arr)
  </script>
</body>

</html>

ShardingSphere-JDBC 关键字问题 这里得到的提示就是,假设一个老库一堆表,只对个别表进行分表。引入sharding后虽然指定了分表的bindingTables,其余的走default-data-source就是默认不分表的。但是sharding会接管数据源,老表用默认的mybatis正常,sharding可能会报错。preciseAlgorithmClassName对应的是类名,注意yaml的缩进。这不是常见的没有配置sharding数据源导致empty的错误。使用sharding的时候,遇到了两个问题。... 阅读详情

相关推荐

手把手教你利用qemu搭建银河麒麟V11 arm环境

在Windows环境下,初学者或企业用户常通过VMware、VirtualBox等虚拟机软件安装Ubuntu、Red Hat等Linux系统,这类工具更侧重X86等复杂指令集架构(CISC,常见于Intel、AMD处理器)的虚拟化。而QEMU是一款开源的虚拟机监视器与模拟器,核心优势在于可模拟ARM、MIPS、RISC-V等精简指令集架构(RISC)的处理器并提供虚拟化能力,更适合对虚拟化技术有一定了解的用户。可能是电脑性能问题,安装过程比较慢,需要耐心等待。等操作系统下载完成后,进行安装了。

huanhuanzhou blog 2455

关于html数组的四中遍历方式 并且其中for in和for of的区别

JQuery中的for.each循环。

Too_Soup_Soup的博客 1930

CANoe软件之离线报文回放与分析实战

本文详细介绍了如何使用CANoe软件进行离线报文回放与分析,帮助工程师将现场故障数据转化为可反复研究的实验室资源。通过实战步骤,指导如何搭建分析工程、加载DBC文件解码信号,并利用Trace和Graphics窗口进行深度数据筛选与图形化分析,从而高效定位汽车电子故障,是提升诊断效率的关键技能。

weixin_29227585的博客 529

数组嵌套数组的遍历

var myarr=[ { "name": "航空项目", "total": 6, "finished": 1, "unfinished": 5, "finishedProject": [ { "delivery": "2018-9-1",

weixin_42580704的博客 1万+

蜗牛星际+OpenWrt实战:双网口变AP模式,让所有设备同网段互通

本文详细介绍了如何将蜗牛星际双网口小主机刷入OpenWrt系统,并将其配置为AP模式,实现与主路由同网段的无缝桥接。通过关闭DHCP、桥接物理网口等核心步骤,解决家庭网络设备割裂问题,让所有设备在同一局域网内高效互通,特别适合追求网络简洁和厌恶多级NAT的技术爱好者。

zero1的博客 960

华北理工大学以升实验班蓝桥杯选拔赛题解

文章目录华北理工大学以升实验班蓝桥杯选拔赛题解A:期末考试题目描述题目讲解代码B:月份题目描述题目讲解代码C:打饭题目描述题目讲解代码D : 正弦波信号题目描述题目讲解代码E : 亲爱的长方形题目描述题目讲解代码F:挖金子题目描述题目讲解代码G : 金金的游戏题目描述题目讲解代码H : 区间和题目描述题目讲解代码详细视频讲解请关注华北理工大学b站账号。 华北理工大学以升实验班蓝桥杯选拔赛题解 A:期末考试 题目描述 Description 期末考试过去许多天了,如今成绩都出来了,那么现在让我们对成绩我分个类

Qq1739206233的博客 1127

html怎么遍历数组,js遍历数组有多少种方法

如果你看完了你会体会到一个人能有多无聊,这东西都能看完!!??大概js有以下几种循环遍历的方法:1 let arr = ['aaa','bbb','ccc']2 let obj = {a:'aaa',b:'bbb',c:'ccc'}3 let deepObj = {a:'aaa', b:{c:'ccc'}}45 // foriFn(arr);// 经典for循环6 // index :...

weixin_39730911的博客 568

HFSS求解器背后的数学原理:从麦克斯韦方程到S参数计算

本文深入解析了Ansys HFSS求解器的数学原理,从麦克斯韦方程出发,详细介绍了模式驱动求解(Driven Solution)和本征模求解(Eigenmode)等核心算法。通过有限元方法和模式匹配技术,HFSS将电磁场问题转化为矩阵方程求解,实现S参数计算和场分布分析,为工程师提供精确的电磁仿真工具。

weixin_28314575的博客 465

遍历双层循环嵌套的数组--使用 ... 扩展运算符

遍历双层循环嵌套的数组--使用 ... 扩展运算符

weixin_45392559的博客 906

2d游戏地图编辑器_[U3D]基于MarchingCubes实现的War3Editor 地表/悬崖编辑器

花了几天时间研究清楚Marching cubes后,发现这个方法是一个非常适用于地图编辑,网格编辑,procedural 生成的工具。最大的优点有着较好的边缘,表面处理。然后我用U3D写了一个悬崖/地表的编辑器。其中使用到了Marching Cubes的2.5D,2D两种降维的方法。talk is cheap,让我看效果!DemoEditor展示https://www.zhihu.com/vide...

weixin_42504649的博客 1178

5、基于模型的系统工程(MBSE)全面解析

本文全面解析了基于模型的系统工程(MBSE),介绍了模型在系统工程中的核心地位,以及如何通过视图和符号表示法实现信息的可视化。文章还详细阐述了MBSE的方法构成,包括框架(本体和视图点)和流程集,探讨了MBSE的实施流程、关键要素、应用策略以及未来发展趋势。通过合理应用MBSE,组织可以提高系统开发的效率和质量,降低成本与风险,实现成功部署。

nft7creator的博客 127

JavaScript基础-嵌套循环,数组/数组操作

嵌套循环 数组的基本使用 遍历数组 操作数组 数组的增删改查 数组的求和,求平均值,最大值最小值等案例

2301_76866366的博客 1337

无法加载文件:C:\Users\Lenovo\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本编程

当您遇到类似于"无法加载文件:C:\Users\Lenovo\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本编程"的错误消息时,请按照上述步骤来解决问题。当您尝试加载文件C:\Users\Lenovo\AppData\Roaming\npm\cnpm.ps1时,可能会遇到类似于"无法加载文件:C:\Users\Lenovo\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本编程"的错误消息。请注意,更改执行策略可能会带来一些安全风险。

PixelInk的博客 1921

Web-Dev-For-Beginners 的 JavaScript 数组与循环实战:从数据存储到高效数据处理的完整指南

本篇指南基于 Web-Dev-For-Beginners 课程第 2 模块的第 4 课 [2-js-basics/4-arrays-loops/README.md](https://link.gitcode.com/i/ea5c84c96bbc9d0541f7d3348da05261),系统讲解 JavaScript 数组的创建、索引、常用方法,以及 for、while、for...of、forE

gitblog_00538的博客 207

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

数组及其案例

数组Array 6.1 什么是数组 数组是值得有序集合,每个值叫做一个元素,而每个元素在数组中有一个位置,以数字表示,称为索引。 js的数组是无类型的,数组元素可以是任意类型,同一个数组中的不同元素可能是对象或数组。 简单地说:数组就是用来存放数据的容器。 数组的属性: 属性 描述 constructor 返回对创建此对象的数组函数的引用。 length 设置或返回数组中元素的数目。 prototype 使您有能力向对象添加属性和方法。 6.2 数组的创建 1、通过字面量直接创

qq_44791674的博客 469

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

js数组相关

当你只需要对每个元素执行一次操作、不需要提前终止、也不需要返回新数组时,forEach() 是最简洁直观的选择。forEach() 是数组自带的高阶方法,它接收一个回调函数,数组中的每个元素都会依次调用一次该回调函数。forEach() 不会改变原数组,也不会返回新数组,它只负责对每个元素执行操作。push() 在数组末尾加入一个或多个元素,返回数组的新长度(后加)。concat() 用于合并多个数组,返回一个新数组,原数组不变。slice() 截取数组的一部分,返回新数组,不改变原数组。

WO6666____的博客 218

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

JavaScript之数组相关方法以及应用

1,稀疏数组 稀疏数组是指数组中的某个下标未给出值或某个下标的值被删除。例如: let arrayOne=['xiaozi',,12,,true,23] let arrayTwo=[1,2,3,3,4] delete arrayTwo[1] console.log(arrayOne); console.log(arrayTwo); 打印结果: 未给出值或者被删除的元素的打印结果为empty,表示为空(注意不是表示为null)。 打印该位置的值: console.log(arrayT.

qq_31539817的博客 1855

前端八股JS---数组方法

这篇文章总结了JavaScript数组操作的核心方法,分为六大类:遍历/循环类(forEach、map、filter、reduce)、查找/判断类(find、includes等)、增删改操作(push、splice等)、不改变原数组的方法(slice、concat等)、排序/反转方法(sort、reverse)以及ES6新增方法(flat、flatMap)。特别强调了容易混淆的slice与splice、map与forEach的区别,并重点介绍了reduce方法的高频用法,包括数组求和、去重、扁平化、分组和统

m0_60430540的博客 331

前端常用数组操作函数

本文总结了26个常用数组方法,分为查询、操作、转换等类型。查询类包括find()、indexOf()等用于查找元素;操作类如push()、splice()等会修改原数组;转换类如map()、join()等会返回新数据。重点方法包括:修改原数组的sort()、reverse()、splice();不修改原数组的map()、filter()、concat();以及ES6新增的flat()和at()。使用时需注意方法的副作用、返回值和性能差异,如forEach()不能中途退出,reduce()适合聚合计算等。这些

weixin_42285138的博客 351

Go~Golong容器大集合, 包括Slice、Map、Heap、List、Ring

文章目录前言Slice1.1 创建切片1.2 理解数组指针1.3 自动扩容1.4 字节切片1.5 copy()函数1.6 sort.slice()排序1.7 切片的坑Map2.1 声明&初始化2.2 常用操作2.2.1 长度和容量2.2.2 添加2.2.3 修改2..2.4 删除2.2.5 查看2.2.6 嵌套2.2.7 变量赋值2.3 Map底层原理剖析2.3.1 初始化2.3.2 写入数据2.3.3 读取数据2.3.5 修改数据2.3.6 扩容2.3.5 迁移翻倍扩容等量扩容2.4 Map的坑H

Shangxingya的博客 1768

js数组用法,包括ES6新增扩展

它的参数是一个回调函数,,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员。方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。1.index:必选,指定在什么位置删除项目,使用负值从数组末尾开始的位置。1.start,可选,从何时开始选取,使用负值从数组末尾开始的位置。5.flat() 定义:用于将嵌套的数组“拉平”,变成一维的数组。2.end,可选,从何时结束,截取的片段不包含该元素。对数组的每一项都运行给定的函数,返回 结果为。

weixin_40526436的博客 156

数组对象的常用方法

数组常用方法列举和用法总结

AKindofo的博客 1882

数组的方法

顺序 方法名 功能 返回值 是否改变原数组 版本 1 push() (在结尾)向数组添加一或多个元素 返回新数组长度 Y ES5- 2 unshift() (在开头)向数组添加一或多个元素 返回新数组长度 Y ES5- 3 pop() 删除数组的最后一位 返回被删除的数据 Y ES5- 4 shift() 删除首个数组元素,并把所有其他元素“位移”到更...

winxin_58206976的博客 472

JavaScript——数组

forEach()会给回调函数传递3个参数,第1个是当前遍历到的元素,第2个是当前元素的索引,第3个是数组本身,一般只用到前两个参数,forEach()没有返回值。上例中,给reduce传递的第2个参数值为0,代表初始的和为0,当第一次调用回调函数时,累计值acc的值则为0,当前元素cur为1,在执行acc+cur之后,回调函数返回1,作为第2次调用回调函数时acc参数的值,然后在第2次调用中,使用acc加上当前元素的值2,所以返回3,以此类推,直到计算到5,返回10加5的结果,即15。

吴声子夜歌的博客 426

【手把手教你+学数组的全面方法】

数组的全面方法

Lnbd_的博客 1563

数组(Array)方法

数组方式属性

MM_520131400的博客 797
上一篇: 三、运算符、数据类型转换(显式、隐式)、语句(if、三元、switch、while、for)
下一篇: 五、函数封装及调用、参数及返回值、作用域、匿名函数、立即执行函数
bpmf_fff
博客等级 码龄6年 219粉丝 49原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值