Heim > Artikel > Web-Frontend > So definieren und geben Sie eine Spiralmatrix in JavaScript aus
Dieser Artikel stellt hauptsächlich die Methode zum Definieren und Ausgeben von Spiralmatrizen in JavaScript vor. Er beschreibt kurz das Konzept und Prinzip von Spiralmatrizen und analysiert die spezifischen Bedienungsfähigkeiten beim Definieren und Ausgeben von Spiralmatrizen in JavaScript Bedarf kann sich auf Folgendes beziehen
Das Beispiel in diesem Artikel beschreibt die Methode zum Definieren und Ausgeben einer Spiralmatrix in JavaScript. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
Ich habe gestern Abend zufällig eine solche Algorithmusfrage gesehen und dann darüber nachgedacht, js zu verwenden, um sie zu implementieren.
Nachdem ich gestern Abend hastig mit dem Schreiben fertig war, hatte ich das Gefühl, dass der Code hässlich und stinkend war, also habe ich mir heute Abend etwas Zeit genommen, ihn umzugestalten, und er fühlte sich eleganter an.
Was ist eine Spiralmatrix?
Eine Spiralmatrix bezieht sich auf eine Spiralmatrix mit Zahlen, die in der ersten Zeile beginnen und sich nach rechts fortsetzen . Werden Sie größer, werden Sie nach unten größer, werden Sie nach links größer, werden Sie nach oben größer und so weiter.
Wie im Bild gezeigt:
Erzielen Sie den Effekt
Implementierungscode
(function() { var map = (function() { function map(n) { this.map = [], this.row = 0, this.col = -1, this.dir = 0, this.n = n; // 建立个二维数组 for (var i = 0; i < this.n; i++) { this.map.push([]); } // 定义移动的顺序为 右,下,左,上 var order = [this.right, this.bottom, this.left, this.up]; i = 0; do { // 能移动则更新数字,否则更改方向 order[this.dir % 4].call(this) ? i++ : this.dir++; // 赋值 this.map[this.row][this.col] = i; } while (i < n * n); } map.prototype = { print: function() { for (var i = 0; i < this.n; i++) { console.log(this.map[i].join(' ')) } }, // 向该方向移动 left: function() { return this.move(this.row, this.col - 1); }, right: function() { return this.move(this.row, this.col + 1); }, up: function() { return this.move(this.row - 1, this.col); }, bottom: function() { return this.move(this.row + 1, this.col); }, // 如果坐标在范围内,并且目标没有值,条件满足则更新坐标 move: function(row, col) { return (0 <= row && row < this.n) && (0 <= col && col < this.n) && !this.map[row][col] && (this.row = row, this.col = col, true); }, }; return map; })(); new map(6).print(); })();
Das Obige habe ich für alle zusammengestellt. Ich hoffe, dass es in Zukunft für alle hilfreich sein wird.
Verwandte Artikel:
So verwenden Sie das WeChat-Applet, um das Zuschneiden des Bildauswahlbereichs zu realisieren
Detaillierte Interpretation von Eventbus in Vue
So verwenden Sie toDoList in Angular
So verwenden Sie Fetch zum Senden von Netzwerkanfragen in React Native
So implementieren Sie die aktuelle Seitenfreigabefunktion anderer Seiten in Vue
So implementieren Sie das Laden bei Bedarf in Vue
Das obige ist der detaillierte Inhalt vonSo definieren und geben Sie eine Spiralmatrix in JavaScript aus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!