自学前端 Day7

132 阅读2分钟

一、数组

是一种可以按顺序保存数据的类型

  • 数组数据查询:数组名[下标]
  • 重新赋值:数组名[下标]=新值
  • 添加新数据:
    数组名.push(新值):将新值添加到数组的末尾
    数组名.unshift(新值):将新值添加到数组的开头
  • 删除数据:数组名.pop(值):删除数组中最后一个元素;
    数组名.shift(值):删除数组中第一个元素;
    数组名.splice(a(起始位置) , b(删除几个元素) , c(从起始位置前添加的元素c)) 数组塌陷:
    数组在执行删除操作时,删除数组单元之后,后面的数组单元会向前移动,出现在删除单元的位置上,造成数组长度减少的现象,就是数组的塌陷。
/*删除数组中的0*/
  
  方法一
 let arr = [123, 0, 235, 0, 34, 0, 0, 534, 200, 0,]
    for (let i = 0; i < arr.length; i++) {
      if (arr[i] == 0) {
        arr.splice(i, 1)
        i--  //方法一
      }
    }
    console.log(arr);
    
方法二(反向遍历)
let arr = [123, 0, 235, 0, 34, 0, 0, 534, 200, 0]
    let a = 0
    for (let i = arr.length - 1; i >= 0; i--) {
      if (arr[i] == a) {
        arr.splice(i, 1)
      }
    }
    console.log(arr);

数组冒泡排序法:
数组的冒泡排序就是将数组元素两两比较,较大的元素后移,当数组中最后两个元素比完之后,能选出该数组中最大的元素。接着开始第二轮比较,由于已经将最大的数确定在了最后一位,所以这一轮比到到数组倒数第二个元素就结束了,接着以此类推,直到将数组元素按升序排列完成为止。降序也可以这样操作。
代码实现:

方法一
let arr = [5, 1, 8, 1, 1, 6, 4, 5, 1545, 2]
        for (let j = 1; j < arr.length; j++) {
            for (let i = 0; i < arr.length - j; i++) {
                if (arr[i] >= arr[i + 1]) {
                    let a = arr[i]
                    arr[i] = arr[i + 1]
                    arr[i + 1] = a

                }
            }
        }
        console.log(arr);
        
方法二2        
let arr = [5, 1, 8, 1, 1, 6, 4, 5]
    arr.sort(function (min, max) {return (min - max)})
        console.log(arr);

二、循环

  1. while循环:
 let i ='';(变量起始值)
 while (循环条件) {
            要执行的代码块
            i++
              break(终止循环)
            }
        }

while无限循环

 <script>
        while (*true) {
            let a = prompt('aa')
         *  if (a = 10) {
                  break(终止循环)
            }
        }
    </script>
  1. for循环
// 遍历数组
let arr = [1,2,3];
for(let i = 0;i < arr.length;i++){
    console.log(i) // 索引,数组下标
    console.log(arr[i]) // 数组下标所对应的元素
}

// 遍历对象
let profile = {name:"April",nickname:"二十七刻",country:"China"};
for(let i = 0, keys=Object.keys(profile); i < keys.length;i++){
    console.log(keys[i]) // 对象的键值
    console.log(profile[keys[i]]) // 对象的键对应的值
}

// 遍历字符串
let str = "abcdef";
for(let i = 0;i < str.length ;i++){
    console.log(i) // 索引 字符串的下标
    console.log(str[i]) // 字符串下标所对应的元素
}

// 遍历DOM 节点
let articleParagraphs = document.querySelectorAll('.article > p');
for(let i = 0;i<articleParagraphs.length;i++){
    articleParagraphs[i].classList.add("paragraph");
    // 给class名为“article”节点下的 p 标签添加一个名为“paragraph” class属性
}

  1. while和for循环的区别:
  • for循环是根据次数循环,循环次数已知
  • while循环是根据条件进行循环,循环条件未知
  1. 循环结束:
  • break:直接结束循环
  • continue:结束本次循环里continue后面的代码,继续下一次循环