首頁  >  文章  >  web前端  >  JavaScript 實作等分數組

JavaScript 實作等分數組

coldplay.xixi
coldplay.xixi轉載
2020-12-14 17:07:043762瀏覽

JavaScript欄位介紹如何實作等分數組

JavaScript 實作等分數組

#相關免費學習推薦:javascript(影片)

在本教學中,我們來學習如何使用Array.splice()方法將陣列等分,還會講一下,Array.splice() Array.slice() 它們之間的差異。

1. 將陣列分成兩個相等的部分

我們可以分兩步驟將陣列分成兩半:

  1. 使用 length/2Math.ceil()方法找到陣列的中間索引

  2. 使用中間索引和Array.splice()方法獲得陣列等分的部分

Math.ceil() 函數傳回大於或等於一個給定數字的最小整數。

const list = [1, 2, 3, 4, 5, 6];
const middleIndex = Math.ceil(list.length / 2);

const firstHalf = list.splice(0, middleIndex);   
const secondHalf = list.splice(-middleIndex);

console.log(firstHalf);  // [1, 2, 3]
console.log(secondHalf); // [4, 5, 6]
console.log(list);       // []

Array.splice() 方法透過刪除,替換或新增元素來更改陣列的內容。而 Array.slice() 方法會先對陣列一份拷貝,在操作。

  • list.splice(0, middleIndex) 從陣列的0索引處刪除前3個元素,並將其返回。
  • splice(-middleIndex)從陣列中刪除最後3個元素並傳回它。

在這兩個操作結束時,由於我們已經從陣列中刪除了所有元素,所以原始陣列是空的。

另請注意,在上述情況下,元素數為偶數,如果元素數為奇數,則前一半將有一個額外的元素。

const list = [1, 2, 3, 4, 5];
const middleIndex = Math.ceil(list.length / 2);

list.splice(0, middleIndex); // returns [1, 2, 3]
list.splice(-middleIndex);   // returns [4, 5]

2.Array.slice 和Array.splice

有時我們不希望改變原始數組,這個可以配合Array.slice() 來解決這個問題:

const list = [1, 2, 3, 4, 5, 6];
const middleIndex = Math.ceil(list.length / 2);

const firstHalf = list.slice().splice(0, middleIndex);   
const secondHalf = list.slice().splice(-middleIndex);

console.log(firstHalf);  // [1, 2, 3]
console.log(secondHalf); // [4, 5, 6]
console.log(list);       // [1, 2, 3, 4, 5, 6];

我們看到原始陣列保持不變,因為在使用Array.slice()刪除元素之前,我們使用Array.slice()複製了原始陣列。

3.將陣列分成三等分

const list = [1, 2, 3, 4, 5, 6, 7, 8, 9];
const threePartIndex = Math.ceil(list.length / 3);

const thirdPart = list.splice(-threePartIndex);
const secondPart = list.splice(-threePartIndex);
const firstPart = list;     

console.log(firstPart);  // [1, 2, 3]
console.log(secondPart); // [4, 5, 6]
console.log(thirdPart);  // [7, 8, 9]

簡單解釋一下上面做了啥:

  1. 首先使用st.splice( -threePartIndex)提取了ThirdPart,它刪除了最後3個元素[7、8、9],此時list僅包含前6個元素[ 1、2、3、4、5、6]

  2. 接著,使用list.splice(-threePartIndex)提取了第二部分,它從剩餘list = [1、2、3、4 、5、6](即[4、5、6])中刪除了最後3個元素,list只包含前三個元素[1、2、3],即firstPart

4. Array.splice() 更多用法

#現在,我們來看看Array.splice() 更多用法,這裡因為我不想改變原數組,所以使用了Array.slice(),如果智米們想改變原始數組可以進行刪除它。

const list = [1, 2, 3, 4, 5, 6, 7, 8, 9];

取得陣列的第一個元素

list.slice().splice(0, 1) // [1]

#取得陣列的前5個元素

list.slice().splice(0, 5) // [1, 2, 3, 4, 5]

#取得數組前5個元素之後的所有元素

list.slice().splice(5) // 6, 7, 8, 9]

取得陣列的最後一個元素

list.slice().splice(-1)   // [9]

#取得陣列的最後三個元素

list.slice().splice(-3)   // [7, 8, 9]

程式碼部署後可能存在的BUG沒辦法即時知道,事後為了解決這些BUG,花了大量的時間進行log 調試,這邊順便給大家推荐一個好用的BUG監控工具Fundebug。

以上是JavaScript 實作等分數組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除