一、数组
是一种可以按顺序保存数据的类型
- 数组数据查询:数组名[下标]
- 重新赋值:数组名[下标]=新值
- 添加新数据:
数组名.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);
二、循环
- while循环:
let i ='';(变量起始值)
while (循环条件) {
要执行的代码块
i++
break(终止循环)
}
}
while无限循环
<script>
while (*true) {
let a = prompt('aa')
* if (a = 10) {
break(终止循环)
}
}
</script>
- 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属性
}
- while和for循环的区别:
- for循环是根据次数循环,循环次数已知
- while循环是根据条件进行循环,循环条件未知
- 循环结束:
- break:直接结束循环
- continue:结束本次循环里continue后面的代码,继续下一次循环