/* 案例1. 删除指定数组元素
要求: 将数组[2, 0, 6, 1, 77, 0, 52, 0, 25, 7]中的0去掉后形成一个包含0的新数组
思路: 1.需要一个新的数组用于存放筛选之后的数据
2.遍历原来的数组 把不是0的数据添加到新数组里面(注意要采用 数组名+索引 的格式接收数据)
3.新数据的个数 用length不断累加
*/
var arr = [2, 0, 6, 1, 77, 0, 52, 0, 25, 7] ;
var arr2 = [ ] ; // 定义一个空的数组 用来接收新数组
for (var i = 0 ; i < arr . length ; i++ ) { // 遍历数组
if ( arr [ i ] != 0 ) { // 如果数组里的元素不等于0
arr2 [ arr2 . length ] = arr [ i ] ; // 就存到arr2数组里
}
}
console . log (arr2) ; // 输出arr2新数组
/* 案例2.翻转数组
要求: 将数组['red', 'green', 'blue', 'pink', 'purple']内容反过来存放
输出结果:['purple', 'pink', 'blue', 'green', 'red',]
思路: 1.声明一个新数组arr4
2.把旧数组索引号第4(arr3 . length-1)个取过来 赋值给新数组索引号第0(arr4 . length)个
3.采用递增方式 --
*/
var arr3 = ['red', 'green', 'blue', 'pink', 'purple'] ;
var arr4 = [ ] ; // 声明新数组arr4
for ( var i = arr3 . length - 1 ; i >= 0 ; i-- ) { /* 将arr3数组索引号4的元素 - 1赋值给arr4新数组索引号0的元素 然后逐次自减 arr3 . length - 1 表示 arr3数组索引号4的元素-1 i>=0 表示索引号从0开始 */
arr4 [ arr4 . length ] = arr3 [ i ] ;
}
console . log ( arr4 ) ; // 输出arr4新数组
/* 案例3.冒泡排序
要求: 将数字[4, 2, 3, 5, 1]冒泡排序
输出结果: [1, 2, 3, 4, 5]
思路: 1.因为有5个数据元素 所以一共需要4轮 用外层for循环控制轮数 长度就是数组长度-1 (length - 1)
2.每一轮交换的次数 由里循环for控制 因此长度就是 i-1
3.最后进行2个变量的交换
*/
var arr5 = [4, 2, 3, 5, 1];
for (var i = 0 ; i <= arr5 . length - 1 ; i++ ) { // 外层循环 控制轮数
for ( var j = 0 ; j <= arr5 . length - i - 1 ; j++ ) { // 里层循环控制 每一轮的次数
if ( arr5 [ j ] > arr5 [ j + 1 ] ) { // 条件判断 如条件为ture 就执行2个变量值交换 为false 就继续判断
var temp = arr5 [ j ] ; // 声明临时变量 进行交换 内部交换2个变量值是前一个
arr5 [ j ] = arr5 [ j + 1 ];
arr5 [ j + 1 ] = temp ;
}
}
}
console . log ( arr5 ) ; // 输出arr5
// 注意: 如需从大到小排列 只需改变条件判断 arr5 [ j ] < arr5 [ j + 1 ]
/*
利用函数封装的方法写冒泡排序
*/
function sort ( arr6 ) {
for ( var i = 0 ; i <= arr6 . length - 1 ; i++ ) {
for ( var j = 0 ; j <= arr6 . length - i - 1 ; j++) {
if ( arr6 [ j ] > arr6 [ j + 1 ] ) {
var temp = arr6[j];
arr6 [ j ] = arr6[ j + 1 ];
arr6 [ j + 1 ] = temp ;
}
}
}
return arr6 ;
}
console . log ( sort ( [ 1, 44, 3, 22, 5, 7 ] ) );
/* 函数的调用使用
1.用户输入年份 输出当前年份2月份的天数
*/
function backDay ( ) {
var year1 = prompt ( ' 请输入年份 ' ) ;
if ( aYear ( year1 ) ) { // 调用判断平闰年的函数
alert ( ' 当前年份是闰年 2月份有29天 ' ) ;
} else {
alert ( ' 当前年份是平年 2月份有28天 ' ) ;
}
}
backDay ( ) ;
/* 2.利用函数判断 闰年或平年 闰年为true 平年为false
*/
function aYear ( year ) { //能被4整除且不能被100整除或被400整除的为闰年 否则为平年
if ( year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
return true ;
} else {
return false ;
}
}
/* 利用sort () 方法 实现冒泡排序
*/
var arr1 = [ 1, 4, 2, 55, 33, 22, 11 ] ;
arr1 . sort ( function ( a , b ) {
// 这个升序排列 return a - b ;
return b - a ; //这个是降序排列
} ) ;
console . log ( arr1 ) ;
