字體:小 中 大 | |
|
|
2022/08/31 10:00:00瀏覽35|回應0|推薦0 | |
延續探討 陣列函數 Array.splice(start[, deleteCount[, item1[, item2[, ...]]]]) 函數說明:將元素插入陣列中或是刪除陣列中的元素。 傳入參數說明: Start:插入的起始值,若數值大於陣列長度,則插入陣列最尾端,若起始值小於0,則從陣列最末端開始數,ex:-3則插入起始位置為陣列倒數第三個位置。 deleteCount:要刪除的陣列元素數量,0表示只插入元素不做刪除的動作。 Item1~n:要插入的元素。 範例: var a = [1,2,3,4,5,6,7,8]; a.splice(4); a.splice(1,2); a.splice(1,1); 說明:最後a陣列為[1],第一行指派a陣列 [1,2,3,4,5,6,7,8]值,第二行取出a陣列第四個位置以後的所有元素,所以a陣列會變成[1,2,3,4],而splice的回傳值為a陣列取出的資料也就是 [5,6,7,8] ,第三行取出a陣列第一個位置以後兩個元素,所以a陣列會變成[1,4],而splice的回傳值為a陣列取出的資料也就是[2,3],最後一行取出a陣列第一個位置以後一個元素,所以a陣列會變成[1],而splice的回傳值為a陣列取出的資料也就是[4]。 範例2: var a = [1,2,3,4,5]; a.splice(2,0,Message,NAS); a.splice(2,2,[1,2],3); 說明:最後a陣列為[1,2,[1,2],3,3,4,5],第一行指派a陣列 [1,2,3,4,5,6,7,8]值,第二行傳入的第一個參數為2表示陣列會從第二個參數開始執行後面幾個參數要執行的動作,第二個參數為0表示沒有要取出的元素,所以splice的回傳值為[],第三、四個參數為Message、NAS,第二個參數以後的參數為要插入的參數,所以Message、NAS兩個參數都會被插入陣列,從第一個參數所指定的位置開始,也就是說Message、NAS兩個參數會被插入在a陣列的第二個位置,所以目前a陣列會變成[1,2, Message, NAS,3,4,5],第三行傳入的第一個參數為2表示陣列會從第二個參數開始執行後面幾個參數要執行的動作,第二個參數為2表示要從a陣列的第二個位置取出兩個元素,所以splice的回傳值為[Message,NAS],第三、四個參數分別為一個陣列[1,2]以及一個數字3,第二個參數以後的參數為要插入的參數,所以[1,2]、3兩個參數都會被插入陣列,從第一個參數所指定的位置開始,也就是說[1,2]、3兩個參數會被插入在a陣列的第二個位置,所以最後a陣列會變成[1,2,[1,2],3,3,4,5]。 Array.push(element1[, ...[, elementN]]) 函數說明:從陣列最末端加入元素,並回傳新的長度 傳入參數說明: element 1~n:要插入的元素。 Array .pop() 函數說明:從陣列最末端取出元素 範例: var stack = []; stack.push(1,2); //[1,2] return 2 stack.pop(); //[1] return 2 stack.push(3); //[1,3] return 2 stack.push([4,5]); //[1,3,[4,5]] return 3 stack.pop(); //[1,3] return [4,5] stack.pop(); stack.pop(); //[] return 1 stack.pop(); // return undefined 說明:第一行指定stack為陣列,第二行新增元素1,2到陣列stack中,目前stack陣列內容為[1,2]所以push回傳值為2,接下來第三行pop stack陣列,回傳stack最末端的元素2,所以目前stack陣列內容為[1],第四行stack push了一個元素3進入陣列末端,所以目前陣列內容為[1,3]並且回傳目前陣列大小2,第五行又push了一個陣列[4,5]到stack陣列末端,所以目前stack陣列內容為[1,3,[4,5]],雖然這次傳的元素為陣列但是只算一個元素,回傳值為3,第六行pop了stack陣列,回傳stack最末端的元素,也就是剛剛第五行pop的[4,5]陣列,所以目前stack陣列內容為[1,3],第七行pop stack陣列,回傳stack陣列最後一個元素3,所以目前stack陣列內容為[1] ,第八行pop stack陣列,回傳stack陣列最後一個元素1,所以目前stack陣列內容為[],第九行pop stack陣列,回傳stack陣列最後一個元素,但是執行完第八行以後stack陣列裡面已經沒有任何元素了,所以pop的回傳結果會是undefined,然後stack陣列還是維持原本的陣列狀態[]。
結語: 這次的陣列函數說明都是有關陣列的元素插入以及取出元素的方法,在平常寫Javascript常常會使用到的函數。Javascript 常用的幾個array函數都講得差不多了,之後的文章應該會開始寫ECMAScript5特有的幾個常運的函數。 參考:JavaScript大全(ISBN:9789862764411) |
|
( 知識學習|其他 ) |