如何在 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