本帖最后由 小鲁哥哥 于 2017-7-20 16:30 编辑
【黑马程序员济南】 前端与移动开发就业班笔记JS进阶:Day02
今天我们需要学习JS中循环语句的使用,以及数组的遍历、排序。
for循环练习[JavaScript] 纯文本查看 复制代码 <script>
/**
* @author 传智播客
*/
//打印正方形
/*for (var i = 1; i <= 10; i++) {
for (var j = 1; j <= 10; j++) {
document.write("★");
}
document.write("<br/>");
}*/
//打印直角三角形
/*for (var i = 1; i <= 10; i++) {
for (var j = 1; j <= i; j++) {
document.write("★");
}
document.write("<br/>");
}*/
//打印 9 * 9 乘法表
for (var i = 1; i < 10; i++) {
for (var j = 1; j <= i; j++) {
document.write(j + "*" + i + "=" + i * j);
document.write(" ");
}
document.write("<br/>");
}
</script>
数组的声明通过构造函数声明(更加通用) var arr = new Array("a", "b","c");
通过字面量声明(更加简便) var arr =["a","b","c"];
数组的赋值和取值赋值 数组名[索引号] = 值 //arr[0]=100 取值(通过数组名和索引即可取到对应的值) 数组名[索引号] // arr[0]
数组的遍历数组的索引是从0开始的 数组的长度可以通过arr.length获取 由于数组的索引从0开始,所以最后一个值的索引为arr.length-1
通过for循环遍历数组 [JavaScript] 纯文本查看 复制代码 /**
* @author 传智播客
*/
for (var i = 0; i <= arr.length - 1; i++) {
console.log(arr[i]);
} 可简写为: [JavaScript] 纯文本查看 复制代码 /**
* @author 传智播客
*/
for (var i = 0; i < arr.length; i++) {
console.log(arr);
} 数组length的应用 往数组中添加新元素,数组的length会增加 通过给arr.length赋值可以改变数组的长度
冒泡排序 [JavaScript] 纯文本查看 复制代码 /**
* @author 传智播客
*/
var arr = [65, 97, 76, 13, 27, 49, 58];
//循环控制趟数
for (var i = 0; i < arr.length - 1; i++) {
//控制两两比较的次数
for (var j = 0; j < arr.length - 1; j++) {
//两两比较 从小到大排序
if (arr[j] > arr[j + 1]) {
//交换位置
var tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
冒泡排序最终版 [JavaScript] 纯文本查看 复制代码 /**
* @author 传智播客
*/
//将一个数组中的值从小到大排列
//var arr = [65, 97, 76, 13, 27, 49, 58];
var arr = [1, 2, 3, 4, 5];
var outer = 0
var inner = 0;
for (var i = 0; i < arr.length - 1; i++) {
//var wocai = "我猜这次一排列的是一个已经排好了的数组";
var flag = true;//假设这次排列的是一个已经排好了的数组
for (var j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
//wocai = "猜错了";
flag = false;
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
inner++;
}
outer++;
//if (wocai !== "猜错了") {
if (flag) {
break;
}
}
console.log(arr);
console.log(inner);
console.log(outer);
|