Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptで指定された数の要素を使用して配列の順列を作成する方法


最初の引数としてリテラルの配列を取り、2番目の引数として数値を受け取るJavaScript関数を作成する必要があります。

関数は、2番目の引数で指定された数に等しい長さを持ち、入力配列の要素のすべての可能な順列を含む、そのようなすべての配列の配列を構築する必要があります。

例-

入力配列と数値が-

の場合
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 ]
]

  1. JavaScriptでオートコンプリートを作成するにはどうすればよいですか?

    フォームにオートコンプリートを作成するためのコードは次のとおりです- 例 <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <style>    * {       box-sizing: border-box;    }    body {  

  2. JavaScriptを使用して同じ配列内の配列の要素を複製するにはどうすればよいですか?

    以下は、同じ配列内の配列の要素を複製するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" > <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>   &nbs