如何在 JavaScript 中建立給定元素數量的陣列排列
我們需要編寫一個 JavaScript 函式,該函式將文字陣列作為第一個引數,並將數字作為第二個引數。
該函式應該構造一個數組,其中包含所有長度等於第二個引數指定的數字的陣列,並且包含輸入陣列元素的所有可能排列。
例如 -
如果輸入陣列和數字為 -
const arr = ['k', 5]; const num = 3;
則輸出應為 -
const output = [ [ 'k', 'k', 'k' ], [ 'k', 'k', 5 ], [ 'k', 5, 'k' ], [ 'k', 5, 5 ], [ 5, 'k', 'k' ], [ 5, 'k', 5 ], [ 5, 5, 'k' ], [ 5, 5, 5 ] ];
示例
以下是程式碼 -
const arr = ['k', 5];
const num = 3;
const allPairs = (arr = [], num) => {
const res = [];
if(num === 0){
return [[]];
}
const subResult = allPairs(arr, num - 1);
for(let el of arr){
for(let sub of subResult){
res.push([el].concat(sub));
}
}
return res;
}
console.log(allPairs(arr, num));輸出
以下是控制檯輸出 -
[ [ 'k', 'k', 'k' ], [ 'k', 'k', 5 ], [ 'k', 5, 'k' ], [ 'k', 5, 5 ], [ 5, 'k', 'k' ], [ 5, 'k', 5 ], [ 5, 5, 'k' ], [ 5, 5, 5 ] ]
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP