劃分陣列——JavaScript
假設我們要編寫一個函式,它將一個包含字串/數字文字的陣列 arr 作為第一個引數,一個數字 n 作為第二個引數。
我們需要返回一個包含 n 個子陣列的陣列,每個子陣列最多包含 arr.length / n 個元素。元素的分佈應該是這樣 −
- 第一個元素進入第一個子陣列,第二個進入第二個子陣列,第三個進入第三個子陣列,依此類推。
- 在每個子陣列中有一個元素之後,我們再次從第一個子陣列開始,用它的第二個元素填充第一個子陣列。
- 類似地,當所有子陣列只有兩個元素後,我們在第一個陣列中填充第三個元素,依此類推。
舉例來說 −
如果輸入陣列是 −
const input = [656, 756, 5345, 67, 43, 76, 54, 768, 34];
並且數字 n 是 3,則輸出應該是 −
const output = [ [ 656, 67, 54 ], [ 756, 43, 768 ], [ 5345, 76, 34 ] ];
我們將 Array.prototype.reduce() 方法應用於原始陣列,以構建所需陣列。
示例
程式碼如下 −
const input = [656, 756, 5345, 67, 43, 76, 54, 768, 34];
const divideArray = (arr, size) => {
return arr.reduce((acc, val, ind) => {
const subIndex = ind % size;
if(!Array.isArray(acc[subIndex])){
acc[subIndex] = [val];
}else{
acc[subIndex].push(val);
};
return acc;
}, []);
};
console.log(divideArray(input, 3));輸出
這會在控制檯中產生以下輸出 −
[ [ 656, 67, 54 ], [ 756, 43, 768 ], [ 5345, 76, 34 ] ]
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP