sort()方法、 reverse()方法、數學對象MATH(常用)、計時器 ...
<script> // sort()方法會按照字元串的先後順序對數組的每一個數組項目的字元順序來進行排序的 // 如果數組的某個項目不是字元串, 那麼會先把數組項目轉換為字元串,再來按照字元串的比較方式來排序 // 該方法會改變原始的數組
// let array = [10,5,8,6,9]; // array.sort(); // console.log("sort",array); //[10, 5, 6, 8, 9] // let aa = [1,10,2,20,6,8];
// aa.sort(function(value1,value2){ // if(value1 < value2){ // return -1; //-1前的值比-1後的值小 // }else if(value1 > value2){ // return 1; //返回1,value1在數組後 value2在數組前 -1前的值比-1後的值大 // }else{ // return 0; // } // }); // console.log(aa); // reverse()方法會反轉數組項的順序 // 直接在原始的數組上排序, 只是單純的調轉數字的數組項目的整體順序而已 // 該方法會改變原始的數組 // array.reverse(); // console.log("reverse",array); //[9, 6, 8, 5, 10]
// 數組的隊列操作方法 先進先出 // Array.push(數組項目5) // 往數組末尾增加一個數組項目 // 與此同時,數組的length自動加1 // Array.shift() // 刪除數組的第一個數組項目 // 與此同時,數組的length自動減1 // 反向隊列操作方法 // Array.unshift(數組項目0) // 往數組開始位置增加一個數組項目 // 與此同時,數組的length自動加1 // Array.pop() // 刪除數組的最後一個數組項目 // 與此同時,數組的length自動減1
// 棧操作方法 先進後出 // Array.pop() // 刪除數組的最後一個數組項目 // 與此同時,數組的length自動減1 // Array.pop() // 刪除數組的最後一個數組項目 // 與此同時,數組的length自動減1
// array.push("111"); // console.log("push",array); //push (6) [10, 5, 8, 6, 9, "111"] // array.pop(); // console.log("pop",array); //pop (5) [10, 5, 8, 6, 9]
// array.shift(); // console.log("shift",array); //shift (4) [5, 8, 6, 9] // array.unshift("123"); // console.log("unshift",array); //unshift (5) ["123", 5, 8, 6, 9]
// concat()方法可以基於當前數組中的所有項創建一個新數組。 // concat()方法不會改變原數組 // 如果傳遞給concat()方法的是一或多個數組,則該方法會將這些數組中的每一項都添加到結果數組中。 // let a1 = [1,2,5], // a2 = [4,8,9], // a3 = a1.concat(a2); // console.log(a1); //[1,2,5] // console.log(a3); //[1, 2, 5, 4, 8, 9]
// slice()方法可以接受一或兩個參數,即要返回項的起始和結束位置。 // 情況1:如果不傳入參數的情況下, silce()方法返回完整的數組 // 情況2:在只有一個參數的情況下,slice()方法返回從該參數指定位置開始到當前數組末尾的所有項。 // 情況3:如果有兩個參數,該方法返回起始和結束位置之間的項——但不包括結束位置的項。 // slice()方法不會影響原始數組
// splice()方法會影響原始數組 // 刪除:可以刪除任意數量的項,只需指定2 個參數:要刪除的第一項的位置和要刪除的項數。 // 插入:可以向指定位置插入任意數量的項,只需提供3 個參數:起始位置、0(要刪除的項數) // 和要插入的項。如果要插入多個項,可以再傳入第四、第五,以至任意多個項 // 替換:可以向指定位置插入任意數量的項,且同時刪除任意數量的項,只需指定3 個參數:起 // 始位置、要刪除的項數和要插入的任意數量的項。插入的項數不必與刪除的項數相等。 // console.log("a3",a3); //[1, 2, 5, 4, 8, 9] // console.log("slice:原來",a3.slice()); //[1, 2, 5, 4, 8, 9] // console.log("a3",a3); //[1, 2, 5, 4, 8, 9] // console.log("原來的:",a3.splice()); //[] // console.log(a3); //[1, 2, 5, 4, 8, 9]
// console.log("slice:yi",a3.slice(4)); //[8, 9] // console.log("slice:a3",a3); //[1, 2, 5, 4, 8, 9] // console.log("加一",a3.splice(4)); //[8, 9] // console.log(a3); //[1, 2, 5, 4]
// console.log("slice:yi",a3.slice(1,4)); //[2, 5, 4] // console.log("slice:a3",a3); //[1, 2, 5, 4, 8, 9] // console.log("兩個值",a3.splice(1,4)); //[2, 5, 4, 8] // console.log("a3",a3); //[1, 9]
// console.log("三個值",a3.splice(0,1,3,4,5)); //[1] // console.log(a3); //[3, 4, 5, 2, 5, 4, 8, 9]
// 位置方法:indexOf()和lastIndexOf() // 接收兩個參數:要查找的項和(可選的)表示查找起點位置的索引 // indexOf()方法從數組的開頭(位置0)開始向後查找, // lastIndexOf()方法則從數組的末尾開始向前查找。 // 在沒找到的情況下返回-1 // console.log(a3.indexOf(4)); //3
// ecm5提供五個迭代方法,每個方法都接收兩個參數:要在每一項上 // 運行的函數和(可選的)運行該函數的作用域對象————影響this的值
// 接收運行的函數傳入三個參數:數組項的值、該項在數組中的位置(下標)和數組對象本身 // 1、every():對數組中的每一項運行給定函數,如果該函數對每一項都返回true,則返回true。 // 即傳入的函數必須對每一項都返回true,這個方法才返回true,否則false // let arra = [1,2,3,6,4,8]; // let re = arra.every(function(item ,index, arr){ // return item >2; // }); // console.log(re); //false
// 2、some():對數組中的每一項運行給定函數,如果該函數對任一項返回true,則返回true。 // 即傳入的函數對數組中的任一項返回true,這個方法就返回true,否則false // let arra = [1,2,3,6,4,8]; // let re = arra.some(function(item ,index, arr){ // return item >2; // }); // console.log(re); //true
//3、filter():對數組中的每一項運行給定函數,返回該函數會返回true 的項組成的數組 // 它利用指定的函數中return語句的條件, 把所有符合該條件的數組項目組合成一個新的數組返回 // 該方法不會修改原來的數組
// let arra = [1,2,3,6,4,8]; // let re = arra.some(function(item ,index, arr){ // return item >2; // }); // console.log(re); //符合大於2的取出來放在re中
// let arra = [1,2,2,undefined,4,6,7,undefined,undefined,"w"]; // let result1 = arra.filter(function(item,index,arr){ // return !isNaN(item); //是數值返回false再非,所以就是true // }); // console.log(result1);//[1, 2, 2, 4, 6, 7] // let result2 = arra.filter(function(item,index,arr){ // return !isNaN(item) || item; // }); // console.log(result2); //返回非空的值 [1, 2, 2, 4, 6, 7, "w"]
// 4、map():對數組中的每一項運行給定函數,返回每次函數調用的結果組成的數組。 // map() 返回一個新數組,這個新數組的每一項都是在原始數組中的對應的數組項目傳入函數經過一系列處理的結果 // let arrb = [1,2,2,5,6,7]; // 值,下標,數組的本身 // let result3 = arrb.map(function(item,index,arr){ // return item*2; // }); // // 等價的for迴圈的使用 // // for(let i=0; i<arrb.length;i++){ // // arrb[i] = arrb[i]*2; // // } // console.log(result3); //[2, 4, 4, 10, 12, 14]
// 5、forEach():對數組中的每一項運行給定函數。這個方法沒有返回值。 // foreach(one,two)第二個參數改變 函數的this的作用域 this指向誰 // 沒有返回值 // let arrb = [1,2,2,5,6,7]; // let result3 = arrb.forEach(function(item,index,arr){ // arr[index] *= 2; // }) // console.log(arrb); //[2, 4, 4, 10, 12, 14]
// // 請使用計數遍歷 // for(let i=0;i<arr.lengeh;i++)
// 非計數遍歷 // forEach
// 歸併數組方法:reduce()和reduceRight() // 可以迭代數組所有項,然後狗郵件一個最終的值。 // reduce()從數組的第一項開始,逐個遍歷到最後。 // 而reduceRight()則從數組的最後一項開始,向前遍歷到第一項。 // 這兩個方法都接收兩個參數:一個函數和(可選的)作為歸併基礎的初始值。 // 傳入的函數接收4 個參數:前一個值、當前值、項的索引和數組對象。
// let values = [1,2,2,4,5,6]; // let sum = values.reduce(function(prev,cur,index,array){ // return prev + cur; // }); // console.log(sum); //20
// 數學對象MATH(常用) // π的值 :Math.PI // 取最大數,最小數 Math.max Math.min // let max = Math.max(2,5,35,65); // console.log(max); //65 // let min = Math.min(2,5,35,65); // console.log(min); //2
// 取整 // Math.ceil()執行向上舍入,即它總是將數值向上舍入為最接近的整數; // Math.floor()執行向下舍入,即它總是將數值向下舍入為最接近的整數; // Math.round()執行標準舍入,即它總是將數值四捨五入為最接近的整數; // console.log(Math.ceil(25.6)); //26 // console.log(Math.ceil(25.1)); //26 // console.log(Math.ceil(-2.5)); //-2 // console.log(Math.floor(25.6)); //25 // console.log(Math.floor(25.1)); //25 // console.log(Math.floor(-2.5)); //-3 // console.log(Math.round(25.6)); //26 // console.log(Math.round(25.1)); //25
// 隨機數 // Math.random()方法返回大於等於0 小於1 的一個隨機數 // 取的數不大於一,都是小數 // 改造,取整,向下取整,0-10的數 // console.log(Math.floor(Math.random()*10 ) );
// 計時器 // setInterval(function(){},t) 1000=1s // 每隔t ms執行一次函數function(){}; // clearInterval(定時器名稱) :刪除之前設定的定時器
// let i = 0; // function a(){ // console.log(++i); // }
// let time; // // 計時器 // time = window.setInterval(function(){ // if(i == 10){ // window.clearInterval(time); //關閉計時器 // }else{ // a(); // } // },1000);