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

整数の配列を取得し、JavaScriptで可能なすべての順列の配列を作成します


次のことを行う関数を作成する必要があります-

  • 整数の配列を引数として取ります(例:[1,2,3,4])

  • [1,2,3,4]のすべての可能な順列の配列を作成し、各順列の長さは4(つまり、元の配列の長さ)です

このためのコードは-

になります
const arr = [1, 2, 3, 4];
const permute = (arr = [], res = [], used = []) => {
   let i, ch;
   for (i = 0; i < arr.length; i++) {
      ch = arr.splice(i, 1)[0];
      used.push(ch);
      if (arr.length === 0) {
         res.push(used.slice());
      }
      permute(arr, res, used);
      arr.splice(i, 0, ch);
      used.pop();
   };
   return res;
};
console.log(permute(arr));

出力

そして、コンソールの出力は-

になります
[
   [ 1, 2, 3, 4 ], [ 1, 2, 4, 3 ],
   [ 1, 3, 2, 4 ], [ 1, 3, 4, 2 ],
   [ 1, 4, 2, 3 ], [ 1, 4, 3, 2 ],
   [ 2, 1, 3, 4 ], [ 2, 1, 4, 3 ],
   [ 2, 3, 1, 4 ], [ 2, 3, 4, 1 ],
   [ 2, 4, 1, 3 ], [ 2, 4, 3, 1 ],
   [ 3, 1, 2, 4 ], [ 3, 1, 4, 2 ],
   [ 3, 2, 1, 4 ], [ 3, 2, 4, 1 ],
   [ 3, 4, 1, 2 ], [ 3, 4, 2, 1 ],
   [ 4, 1, 2, 3 ], [ 4, 1, 3, 2 ],
   [ 4, 2, 1, 3 ], [ 4, 2, 3, 1 ],
   [ 4, 3, 1, 2 ], [ 4, 3, 2, 1 ]
]

  1. JavaScriptで配列に存在するすべてのゼロを最後に移動する

    問題 いくつかの0を含む可能性のあるリテラルの配列を受け取るJavaScript関数を作成する必要があります。この関数は、すべてのゼロが最後にプッシュされ、すべての非ゼロ要素が相対位置を保持するように配列を微調整する必要があります。 例 以下はコードです- const arr = [5, 0, 1, 0, -3, 0, 4, 6]; const moveAllZero = (arr = []) => {    const res = [];    let currIndex = 0;    for(let i = 0; i

  2. JavaScriptで配列内のすべてのピークとその位置を見つける

    ビルドアップ JavaScriptに次の配列があるとします- const arr = [4, 3, 4, 7, 5, 2, 3, 4, 3, 2, 3, 4]; この配列の点をy軸にプロットし、隣接する各点をx軸上で単位距離だけ離すと、グラフは次のようになります- このグラフは、この配列のインデックス3と7に、それぞれ値7と4の2つの極大値(ピーク)が存在することを明確に示しています。 問題 整数の配列arrを最初で唯一の引数として受け取るJavaScript関数を作成する必要があります。 この関数は、最大値と位置の2つのプロパティを含むオブジェクトを返すことになっています。