99乘法表
<script>
document.write("<table border='1'>");
for(i=1;i<=9;i++){
document.write("<tr>");
for (j=1; j<=i; j++) {
document.write('<td> '+ i+"x"+j+"="+i*j+ '</td>');
}
document.write("</tr>")
}
document.write("</table>")
</script>
冒泡排序
<script>
var arr = [7, 8, 5, 15, 55, 4, 32, 3, 2, 1];
console.log("排列前", arr);
for (i = 0; i < arr.length - 1; i++) {
var boo = true;
for (j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] < arr[j + 1]) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
boo = false;
}
}
if (boo) {
break
}
}
console.log("排列后", arr);
</script>
数组概述:
现在假设有这么一种需求:
我们班有80人,需要用变量存储每个人的年龄,身高,体重
每个人三个变量 80个人就是240个变量
这么多变量根本没办法管理 所以需要一个整体的容器 放进去
方便统一管理 进行数据的最大值 平均值 最小值 总值的计算
所以我们需要数组 数组就是一片连续的内存空间
一个大的容器 可以存放好多变量数据
数组的创建
// 第一种: 字面量创建
var arr=["张飞","关羽","刘备","周瑜"];
// 第二种创建方式
var arr1=new Array("穿天猴","麻雷子","二踢脚");
// 数组有索引值 通过索引值可以取出数组的任意元素
console.log(arr[1]);
var arr1=[5,7,8,9];//手动定义初始元素 系统计算数组大小
var arr2=new Array("张飞","陶渊明");//手动定义初始元素 系统计算数组大小
var arr3=new Array(5); //手动定义数组初始长度 系统分配默认值(undefined)
操作数组 通过索引值
var arr=["陶渊明","汪伦","麦哲伦"];
// 根据索引值取出指定元素
console.log(arr[1]);
// 打印数组长度
console.log(arr.length);
// 索引值可以超出长度使用 如果该索引值没有元素 则返回undefined
// console.log(arr[5882]);
// console.log(arr);
// 通过索引值改变指定元素
/* arr[2]="郑和";
console.log(arr);
arr[22222]="曹操";
console.log(arr);
console.log(arr.length);*/
数组遍历
var arr=["郑和","张飞","关羽","刘玄德","小面","烤鸡翅"];
console.log(arr[0]);
console.log(arr[1]);
console.log(arr[2]);
console.log(arr[3]);
console.log(arr[4]);
数组遍历: 普通for循环
for(var i=0;i<arr.length;i++){
console.log(arr[i]);
for...in循环(了解) 因为for...in是专门用来遍历json对象(后面讲)
格式:
for(var 变量 in 数组变量){
这里面的变量就是数组的每一个索引值
自己根据索引值 去数组取出每个元素
}
for(var i in arr){
// console.log(i);
console.log(arr[i]);
}
向数组的最后一位添加元素的方法 数组.push(新元素)
arr.push("噫吁嚱");
将数组转换成字符串的方法
arr.join()
1.arr.join()不传参数 默认以逗号分割
2.arr.join("自定义符号") 以指定符号分割
3.arr.join("") 空字符串 最后效果就是没有分割
数组的查找 indexOf() 根据元素找到指定位置 找不到返回-1
console.log(arr.indexOf("诸葛亮"));//-1
如果有元素重复 则找第一个出现的位置
数组翻转
console.log(arr.reverse());
数组练习1
<script>
var arr=[5,7,3,6,2,8];
//求一组数中的所有数的和 和平均值
/* var total=0;
for(var i=0;i<arr.length;i++){
total+=arr[i];
}
console.log("总值:"+total);
console.log("平均值:"+(total/arr.length));
*/
var max=arr[0]; //假设0号元素是最大值
var min=arr[0] //假设0号元素是最小值
var max_index=0; //假设最大值的索引是0
var min_index=0;//假设最小值的索引是0
// 求一组数中的最大值和最小值,以及所在位置
for(var i=1;i<arr.length;i++){
if(arr[i]>max){
max=arr[i]
max_index=i;
}
if(arr[i]<min){
min=arr[i]
min_index=i;
}
}
console.log("最大值是:"+max);
console.log("最大值的所在位置:"+max_index);
console.log("最小值是:"+min);
console.log("最小值的所在位置:"+min_index);
</script>
数组练习2
<script>
//将数组转换成字符串用|或其他符号分割(3种)
/*var arr=["关羽","刘备","张飞","诸葛亮","张亮","麻辣烫"];
var str="";
for(var i=0;i<arr.length;i++){
if(i==arr.length-1){
// 如果失败最后一个元素 那就直接拼内容 不拼|
str+=arr[i]
}else{
str+=arr[i]+"|";
}
}
console.log(str);
console.log(arr.join("|"));*/
//将数组中值为0的去掉,不为0的存入新数组
/*var arr=[8,0,5,2,0,6,0,4,3,1];
var newArr=[];
for(var i=0;i<arr.length;i++){
if(arr[i]!=0){
newArr.push(arr[i]);
}
}
console.log(newArr);*/
// 翻转数组(反向,新数组) 1.翻转后是一个新数组 2.针对原来数组进行翻转
var arr=["关羽","刘备","张飞","诸葛亮","张亮","麻辣烫","哈哈"];
// 翻转后放入新数组
// var newArr=[];
/* for(var i=arr.length-1;i>=0;i--){
newArr.push(arr[i])
}
console.log(newArr);*/
//针对源数组直接翻转
/*
经过分析 是 arr[i] 和arr[arr.length-1-i]这个元素交换位置
*/
console.log("交换前:",arr);
for(var i=0;i<arr.length/2;i++){
var temp=arr[i];
arr[i]=arr[arr.length-1-i];
arr[arr.length-1-i]=temp;
// console.log("交换了:",arr);
}
console.log("交换后:",arr);
var arr1=["关羽","刘备","张飞","诸葛亮","张亮","麻辣烫","哈哈"];
console.log(arr1.reverse());
</script>