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

JavaScriptでの再帰問題SnailTrail


このような配列があるとします-

const arr = [
   [1, 2, 3, 4],
   [12,13,14,5],
   [11,16,15,6],
   [10,9, 8, 7]
];

配列は正方行列にバインドされています。

この配列を取り込んで、要素を取り、中心に収束するまでスパイラルインすることで新しい配列を構築するJavaScript関数を作成する必要があります。マトリックスの外側と内側を渦巻くカタツムリの小道。

したがって、上記の配列の出力は-

になります。
const output = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];

この問題は再帰を使用して解決します。

以下はコードです-

const arr = [
   [1, 2, 3, 4],
   [12,13,14,5],
   [11,16,15,6],
   [10,9, 8, 7]
];
const spiralForm = arr => {
   return arr.length > 1 ?
   arr.splice(0,1)[0]
   .concat(spiralForm(arr[0].map((c, i) => {
      return arr.map(r => r[i]);
   })
   .reverse())) :
   arr[0]
}
console.log(spiralForm(arr));

出力

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

[
  1,  2,  3,  4,  5,  6,
  7,  8,  9, 10, 11, 12,
 13, 14, 15, 16
]

  1. Javascriptで配列を空にする方法

    JavaScriptで配列をクリア/空にする方法は複数あります。コンテキストに基づいてそれらを使用する必要があります。それぞれを見てみましょう。 -として定義された配列があると仮定します let arr = [1, 'test', {}, 123.43]; 新しい配列に置き換える- arr = []; これが最速の方法です。これにより、arrが新しい配列に設定されます。これは、他の場所から元のarrへの参照がない場合に最適です。そうした場合、それらの参照は更新されず、それらの場所は引き続き古い配列を使用します。 長さプロップを0に設定- arr.length = 0 これに

  2. JavaScriptの基本的な配列メソッド

    いくつかの基本的なJavaScript配列メソッドは次のとおりです- メソッド 説明 Array.push() 配列の最後に要素を追加します。 Array.pop() 配列の最後から要素を削除します。 Array.unshift() 配列の先頭に要素を追加するには Array.shift() 配列の前面から要素を削除します。 Array.splice() スプライスに要素を追加または削除するには 以下は、基本的な配列メソッドのコードです- 例 <!DOCTYPE html> <html lang="en