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

再帰を使用して配列のすべての位置に要素を挿入する方法-JavaScript?


関数を宣言する必要があります。たとえば、insertAllPositionsは、2つの引数を取ります-

要素xと配列arr。関数は配列の配列を返す必要があります。各配列はarrに対応し、xが可能な位置に挿入されます。

つまり、arrが長さNの場合、結果はN+1個の配列を持つ配列になります-

たとえば、insertAllPositions(10、[1,2,3])の結果は-

になります。
const output = [
   [10,1,2,3],
   [1,10,2,3],
   [1,2,10,3],
   [1,2,3,10]
];

この関数は、純粋に再帰を使用して作成する必要があります。

以下はコードです-

const arr = [1, 2, 3];
const num = 10;
const insertAllPositions = (num, arr) => {
   return arr.length ?
   [[num, ...arr]]
   .concat(insertAllPositions(num, arr.slice(1))
   .map(el => {
      return [arr[0]].concat(el);
   })) :
   [[num]]
};
console.log(insertAllPositions(num, arr));

出力

これにより、コンソールに次の出力が生成されます-

[ [ 10, 1, 2, 3 ], [ 1, 10, 2, 3 ], [ 1, 2, 10, 3 ], [ 1, 2, 3, 10 ] ]

  1. JavaScript配列のすべての一意の値を取得するにはどうすればよいですか?

    以下は、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>

  2. 並べ替えられた数値の配列に数値を挿入するJavaScript

    ソートされた数値の配列を最初の引数として受け取り、単一の数値を2番目の引数として受け取るJavaScript関数を作成する必要があります。 関数は、要素の並べ替えを歪めることなく、2番目の引数として指定された数値を配列にプッシュする必要があります。 別のアレイを作成せずにこれを行う必要があります。 例 const arr = [6, 7, 8, 9, 12, 14, 16, 17, 19, 20, 22]; const num = 15; const findIndex = (arr, val) => {    let low = 0, high = arr.le