/*? ? 案例1. 刪除指定數(shù)組元素
? ? ? ? ? 要求: 將數(shù)組[2, 0, 6, 1, 77, 0, 52, 0, 25, 7]中的0去掉后形成一個包含0的新數(shù)組
? ? ? ? ? 思路: 1.需要一個新的數(shù)組用于存放篩選之后的數(shù)據(jù)
? ? ? ? ? ? ? ? ? ? 2.遍歷原來的數(shù)組 把不是0的數(shù)據(jù)添加到新數(shù)組里面(注意要采用 數(shù)組名+索引 的格式接收數(shù)據(jù))
? ? ? ? ? ? ? ? ? 3.新數(shù)據(jù)的個數(shù) 用length不斷累加?
*/
? ? ? var arr? =? [2, 0,? 6,? 1,? 77,? 0,? 52,? 0,? 25,? 7] ;
? ? ? ? var arr2? =? [ ] ; ? // 定義一個空的數(shù)組 用來接收新數(shù)組
? ? ? ? for? (var? i? =? 0 ;? i? <? arr . length ;? i++ )? { ? // 遍歷數(shù)組
? ? ? ? ? ? if? ( arr [ i ] !=? 0 )? {? // 如果數(shù)組里的元素不等于0
? ? ? ? ? ? ? arr2 [ arr2 . length ]? =? arr [ i ] ; // 就存到arr2數(shù)組里
? ? ? ? ? ? }
? ? ? ? }
? ? ? console . log (arr2) ;? // 輸出arr2新數(shù)組
? /*? 案例2.翻轉(zhuǎn)數(shù)組
? ? ? ? ? 要求: 將數(shù)組['red', 'green', 'blue', 'pink', 'purple']內(nèi)容反過來存放
? ? ? ? ? 輸出結(jié)果:['purple', 'pink', 'blue', 'green', 'red',]
? ? ? ? ? ? 思路: 1.聲明一個新數(shù)組arr4
? ? ? ? ? ? ? ? ? ? 2.把舊數(shù)組索引號第4(arr3 . length-1)個取過來? 賦值給新數(shù)組索引號第0(arr4 . length)個
? ? ? ? ? ? ? ? ? ? 3.采用遞增方式 --? ?
*/
? ? ? ? var? arr3 =? ['red',? 'green',? 'blue',? 'pink',? 'purple'] ;
? ? ? ? var? arr4? =? [ ] ;? // 聲明新數(shù)組arr4
? ? ? for? ( var? i? =? arr3 . length? - 1 ;? i? >=? 0 ;? i-- ) { /* 將arr3數(shù)組索引號4的元素 - 1賦值給arr4新數(shù)組索引號0的元素? 然后逐次自減? arr3 . length - 1 表示 arr3數(shù)組索引號4的元素-1? i>=0 表示索引號從0開始? */
? ? ? ? ? arr4 [ arr4 . length ] =? arr3 [ i ] ;
? ? ? ? }
? ? ? ? console . log ( arr4 ) ; // 輸出arr4新數(shù)組
/*? ? 案例3.冒泡排序
? ? ? ? ? 要求: 將數(shù)字[4, 2, 3, 5, 1]冒泡排序
? ? ? ? ? 輸出結(jié)果: [1, 2, 3, 4, 5]
? ? ? ? ? 思路: 1.因為有5個數(shù)據(jù)元素 所以一共需要4輪 用外層for循環(huán)控制輪數(shù) 長度就是數(shù)組長度-1 (length - 1)
? ? ? ? ? ? ? ? ? ? 2.每一輪交換的次數(shù) 由里循環(huán)for控制 因此長度就是 i-1
? ? ? ? ? ? ? ? ? ? 3.最后進(jìn)行2個變量的交換
*/
? ? ? ? var? arr5? =? [4,? 2,? 3,? 5,? 1];
? ? ? ? for (var? i? =? 0 ;? i? <=? arr5 . length -? 1 ;? i++ )? {? ? // 外層循環(huán) 控制輪數(shù)
? ? ? ? ? for? ( var? j? =? 0 ;? j? <=? arr5 . length? -? i? -? 1 ;? j++ )? {? // 里層循環(huán)控制 每一輪的次數(shù)
? ? ? ? ? ? ? ? if? ( arr5 [ j ]? >? arr5 [ j? +? 1 ] )? {? // 條件判斷 如條件為ture 就執(zhí)行2個變量值交換 為false 就繼續(xù)判斷
? ? ? ? ? ? ? ? ? ? var? temp? =? arr5 [ j ] ; ? // 聲明臨時變量 進(jìn)行交換? 內(nèi)部交換2個變量值是前一個
? ? ? ? ? ? ? ? ? arr5 [ j ]? =? arr5 [ j? +? 1 ];
? ? ? ? ? ? ? ? ? ? arr5 [ j? + 1 ]? =? temp ;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? console . log ( arr5 ) ; // 輸出arr5
? ? ? // 注意: 如需從大到小排列 只需改變條件判斷 arr5 [ j ]? <? arr5 [ j + 1 ]
/*
? ? 利用函數(shù)封裝的方法寫冒泡排序?
*/
? ? ? 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 ] ) );
/*? 函數(shù)的調(diào)用使用
? ? ? ? ? 1.用戶輸入年份 輸出當(dāng)前年份2月份的天數(shù)
*/
? ? ? ? function? backDay ( )? {
? ? ? ? ? ? var? year1? =? prompt ( ' 請輸入年份 ' ) ;
? ? ? ? ? if? ( aYear ( year1 ) )? {? // 調(diào)用判斷平閏年的函數(shù)
? ? ? ? ? ? ? alert ( ' 當(dāng)前年份是閏年 2月份有29天 ' ) ;
? ? ? ? ? ? }? else? {
? ? ? ? ? ? ? ? alert ( ' 當(dāng)前年份是平年 2月份有28天 ' ) ;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? backDay ( ) ;
/*? 2.利用函數(shù)判斷 閏年或平年 閏年為true 平年為false
*/
? ? ? ? function? aYear ( year )? { ? ? //能被4整除且不能被100整除或被400整除的為閏年 否則為平年
? ? ? ? ? ? if? ( year? %? 4? ==? 0? &&? year? %? 100? !=? 0? ||? year? %? 400? ==? 0)? {
? ? ? ? ? ? ? ? return? true ;
? ? ? ? ? ? }? else? {
? ? ? ? ? ? ? ? return? false ;
? ? ? ? ? ? }
? ? ? ? }
/*? 利用sort () 方法 實(shí)現(xiàn)冒泡排序
*/
? ? ? var? arr1? =? [ 1,? 4,? 2,? 55,? 33,? 22,? 11 ] ;
? ? ? ? arr1 . sort ( function? ( a ,? b ) {
? ? ? ? ? //? 這個升序排列? return a - b ;
? ? ? ? ? ? return? b? -? a ;? //這個是降序排列
? ? ? ? } ) ;
? ? ? ? console . log ( arr1 ) ;
