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

1次元配列を2次元配列に分割するJavaScript


最初の引数として1次元配列を取り、2番目の引数として数値nを受け取る関数を作成する必要があり、親配列内にn個のサブ配列を作成し(**可能であれば)、それに応じて要素を分割する必要があります。

**配列に9つの要素が含まれ、4つのサブ配列を作成するように要求した場合、各サブ配列で2つの要素を分割すると、5つのサブ配列が作成され、それぞれに3つで3つが作成されます。そのような場合、最も近い最低レベル(この場合は3)にフォールバックする必要があります。特別な場合には、最後の1つを除いて、各サブ配列に同数の要素を分散させる必要があります。

例-

// if the input array is:
const arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'];
// and the number is 2
//then the output should be:
const output = [ [ 'A', 'B', 'C', 'D', 'E' ], [ 'F', 'G', 'H', 'I' ] ];

この関数のコードを書いてみましょう-

const arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'];
const splitArray = (arr, rows) => {
   const itemsPerRow = Math.ceil(arr.length / rows);
   return arr.reduce((acc, val, ind) => {
      const currentRow = Math.floor(ind / itemsPerRow);
      if(!acc[currentRow]){
         acc[currentRow] = [val];
      }else{
         acc[currentRow].push(val);
      };
      return acc;
   }, []);
};
console.log(splitArray(arr, 2));

出力

コンソールの出力は-

になります
[ [ 'A', 'B', 'C', 'D', 'E' ], [ 'F', 'G', 'H', 'I' ] ]

  1. JavaScriptで配列の配列をオブジェクトに変換する

    このようなクリケット選手のパフォーマンスを含む配列の配列があるとします- const arr = [    ['Name', 'V Kohli'],    ['Matches', 13],    ['Runs', 590],    ['Highest', 183],    ['NO', 3],    ['SR', 131.5] ]; このような配列の配列を1つ取り

  2. JavaScriptで配列を連続したサブシーケンスに分割できます

    問題 最初で唯一の引数として、ソートされた整数の配列arrを受け取るJavaScript関数を作成する必要があります。 配列を1つ以上のサブシーケンスに分割して、各サブシーケンスが連続する整数で構成され、長さが3以上になる場合にのみ、関数はtrueを返す必要があります。それ以外の場合はfalseです。 たとえば、関数への入力が 入力 const arr = [1, 2, 3, 3, 4, 5]; 出力 const output = true; 出力の説明 それらを2つの連続したサブシーケンスに分割できます- 1, 2, 3 3, 4, 5 例 以下はコードです- cons