Tolles Community-Modul

ASCII-Tabelle

Build-Status DevDependency-Status NPM-Version

Einfache Tabellenausgabe zum Debuggen von Knoten, aber Sie könnten wahrscheinlich mehr damit machen, da es nur eine Zeichenfolge ist.

Inhaltsverzeichnis

Verwendung

Node.js

1
var AsciiTable = require('ascii-table')

Browser

1
<script src="ascii-table.min.js"></script>

Hinweis : Bei Verwendung im Browser wird es unter platziertwindow.AsciiTable

Beispiel

Grundlegende Verwendung

1 2 3 4 5 6 7 8
var table = new AsciiTable('A Title') table .setHeading('', 'Name', 'Age') .addRow(1, 'Bob', 52) .addRow(2, 'John', 34) .addRow(3, 'Jim', 83) console.log(table.toString())
1 2 3 4 5 6 7 8 9
.----------------. | A Title | |----------------| | | Name | Age | |---|------|-----| | 1 | Bob | 52 | | 2 | John | 34 | | 3 | Jim | 83 | '----------------'

Wir können auch eine einfache Tabelle ohne Titel oder Überschriften erstellen.

1 2 3 4 5 6 7 8 9 10
var table = new AsciiTable() table .addRow('a', 'apple', 'Some longer string') .addRow('b', 'banana', 'hi') .addRow('c', 'carrot', 'meow') .addRow('e', 'elephants') console.log(table.toString())
1 2 3 4 5 6
.------------------------------------. | a | apple | Some longer string | | b | banana | hi | | c | carrot | meow | | e | elephants | | '------------------------------------'

API

Static Methods

AsciiTable

AsciiTable.factoryWeitere Informationen zur Instanziierung finden Sie unter:

AsciiTable.factory([Titel], [Optionen])

Ersteller der Tabelleninstanz

  • title- Tabellentitel (optional, Standard null)
  • options- Tischoptionen (optional)
    • prefix– Zeichenfolgenpräfix, das beim Rendern jeder Zeile hinzugefügt wird

Hinweis: Wenn anstelle von ein Objekt übergeben wirdtitle,fromJSON wird die Methode zum Auffüllen der Tabelle verwendet.

Beispiel:

1 2 3 4 5 6 7 8 9 10
var table = AsciiTable.factory('title') var table = AsciiTable.factory({ title: 'Title' , heading: [ 'id', 'name' ] , rows: [ [ 1, 'Bob' ] , [ 2, 'Steve' ] ] })

AsciiTable.align(direction, val, len, [pad])

Verknüpfung zu einer der drei folgenden Methoden

  • direction- Ausrichtungsrichtung ( AsciiTable.LEFT, AsciiTable.CENTER, AsciiTable.RIGHT)
  • val- Zeichenfolge zum Ausrichten
  • len– Gesamtlänge der erstellten Zeichenfolge
  • pad- Füll-/Füllzeichen (optional, Standard ' ')

Beispiel:

1
table.align(AsciiTable.LEFT, 'hey', 7) // 'hey '

AsciiTable.alignLeft(val, len, [pad])

  • val- Zeichenfolge zum Ausrichten
  • len– Gesamtlänge der erstellten Zeichenfolge
  • pad- Füll-/Füllzeichen (optional, Standard ' ')

Beispiel:

1
table.alignLeft('hey', 7, '-') // 'hey----'

AsciiTable.alignCenter(val, len, [pad])

  • val- Zeichenfolge zum Ausrichten
  • len– Gesamtlänge der erstellten Zeichenfolge
  • pad- Füll-/Füllzeichen (optional, Standard ' ')

Beispiel:

1
table.alignCenter('hey', 7) // ' hey '

AsciiTable.alignRight(val, len, [pad])

  • val- Zeichenfolge zum Ausrichten
  • len– Gesamtlänge der erstellten Zeichenfolge
  • pad- Füll-/Füllzeichen (optional, Standard ' ')

Beispiel:

1
table.alignRight('hey', 7) // ' hey'

AsciiTable.alignAuto(val, len, [pad])

Versuchen Sie eine intelligente Ausrichtung der bereitgestellten Daten val. StringDie Eingabe wird linksbündig und Numberdie Typen rechtsbündig ausgerichtet.

  • val- Zeichenfolge zum Ausrichten
  • len– Gesamtlänge der erstellten Zeichenfolge
  • pad- Füll-/Füllzeichen (optional, Standard ' ')

Beispiel:

1
table.align(AsciiTable.LEFT, 'hey', 7) // 'hey '

AsciiTable.arrayFill(len, [val])

Erstellen Sie ein neues Array mit der angegebenen Länge, gefüllt mit dem angegebenen Wert, der hauptsächlich intern verwendet wird

  • len- Länge des Arrays
  • val- Füllwert (optional)

Beispiel:

1
AsciiTable.arrayFill(4, 0) // [0, 0, 0, 0]

Instance Methods

Instanz.setBorder([Kante], [Füllung], [oben], [unten])

Legen Sie die Rahmenzeichen für die Darstellung fest. Wenn keine Argumente übergeben werden, werden sie auf die Standardwerte zurückgesetzt. Wenn ein einzelnes edgeArgument übergeben wird, wird es für alle Ränder verwendet.

  • edge- horizontale Kanten (optional, Standard |)
  • fill-vertikale Kanten (optional, Standard -)
  • top- obere Ecken (optional, Standard .)
  • bottom- untere Ecken (optional, Standard ')

Beispiel:

1 2 3 4 5 6 7
var table = new AsciiTable('Stars') table .setBorder('*') .setHeading('oh', 'look') .addRow('so much', 'star power') console.log(table.toString())
1 2 3 4 5 6 7
************************ * Stars * ************************ * oh * look * ************************ * so much * star power * ************************

Instanz.removeBorder()

Beispiel:

1 2 3
table.removeBorder() console.log('' + table)
1 2 3 4 5 6
# Fruit Thing --- ----------- -------------------- a apple Some longer string b banana hi c carrot meow e elephants

Instanz.setAlign(idx, Richtung)

  • idx-Spaltenindex zum Ausrichten
  • direction- Ausrichtungsrichtung, ( AsciiTable.LEFT, AsciiTable.CENTER, AsciiTable.RIGHT)

Beispiel:

1 2 3 4 5
table .setAlign(2, AsciiTable.RIGHT) .setAlign(1, AsciiTable.CENTER) console.log(table.toString())
1 2 3 4 5 6
.-------------------------------------. | a | apple | Some longer string | | b | banana | hi | | c | carrot | meow | | e | elephants | | '-------------------------------------'

Instanz.setAlignLeft(idx)

Alias ​​​​zuinstance.setAlign(idx, AsciiTable.LEFT)

Instanz.setAlignCenter(idx)

Alias ​​​​zuinstance.setAlign(idx, AsciiTable.CENTER)

Instanz.setAlignRight(idx)

Alias ​​​​zuinstance.setAlign(idx, AsciiTable.RIGHT)

Instanz.setTitle(Titel)

  • title- Tabellentitel

Beispiel:

1 2 3
var table = new AsciiTable('Old Title') table.setTitle('New Title')

Instanz.getTitle()

Rufen Sie den aktuellen Titel der Tabelle ab

Beispiel:

1
table.getTitle() // 'New Title'

Instanz.setTitleAlign(Richtung)

  • direction- Ausrichtungsrichtung des Tisches

Beispiel:

1

Instanz.setTitleAlignLeft()

Alias ​​​​zuinstance.setTitleAlign(AsciiTable.LEFT)

Instanz.setTitleAlignCenter()

Alias ​​​​zuinstance.setTitleAlign(AsciiTable.CENTER)

Instanz.setTitleAlignRight()

Alias ​​​​zuinstance.setTitleAlign(AsciiTable.RIGHT)

Instanz.sort(iterator)

  • iterator- Sortiermethode zum Ausführen gegen die Zeilen

Beispiel:

1 2 3 4
table.sort(function(a, b) { return a[2] - b[2] }) console.log(table.toString())
1 2 3 4 5
.----------------. | 2 | John | 34 | | 1 | Bob | 52 | | 3 | Jim | 83 | '----------------'

Instanz.sortColumn(Index, Iterator)

Sortierverknüpfung zum Targeting einer bestimmten Spalte

  • index- Spalten-IDX zum Sortieren
  • iterator– Sortiermethode zur Ausführung anhand von Spaltenwerten

Beispiel:

1 2 3 4
// This is quivalent to the `sort` example above table.sortColumn(2, function(a, b) { return a - b })

Instanz.setHeading(Überschrift, [...])

Legen Sie die Spaltenüberschriften für die Tabelle fest. Argumente werden auf die gleiche Weise akzeptiert wieaddRow

  • heading- Überschriftenarray oder Argumente

Beispiel:

1 2 3 4 5
table.setHeading('ID', 'Key', 'Value') // or: table.setHeading(['ID', 'Key', 'Value'])

Instanz.setHeadingAlign(Richtung)

  • direction-

Beispiel:

1

Instanz.setHeadingAlignLeft()

Alias ​​​​zuinstance.setHeadingAlignLeft(AsciiTable.LEFT)

Instanz.setHeadingAlignCenter()

Alias ​​​​zuinstance.setHeadingAlignLeft(AsciiTable.CENTER)

Instanz.setHeadingAlignRight()

Alias ​​​​zuinstance.setHeadingAlignLeft(AsciiTable.RIGHT)

Instanz.addRow(Zeile, [...])

Zeilen können mithilfe eines einzelnen Array-Arguments oder der Argumente hinzugefügt werden, wenn beim Aufrufen der Methode mehrere Argumente verwendet werden.

  • row– Array oder Argumente von Spaltenwerten

Beispiel:

1 2 3 4 5 6 7
var table = new AsciiTable() table .addRow(1, 'Bob', 52) .addRow([2, 'John', 34]) console.log(table.render())
1 2 3 4
.---------------. | 1 | Bob | 52 | | 2 | John | 34 | '---------------'

Instanz.addRowMatrix(Zeilen)

Massenbetrieb addRow_

  • rows- mehrdimensionales Array von Zeilen

Beispiel:

1 2 3 4
table.addRowMatrix([ [2, 'John', 34] , [3, 'Jim', 83] ])

Instanz.setJustify(aktiviert)

Richten Sie alle Spalten so aus, dass sie die gleiche Breite haben

  • enabled– boolescher Wert zum Aktivieren oder Deaktivieren von „Justify“, undefinedgilt als wahr

Beispiel:

1 2 3 4 5
table .addRow('1', 'two', 'three') .setJustify() console.log(table.toString())
1 2 3
.-----------------------. | 1 | two | three | '-----------------------'

Instanz.toString()

Rendern Sie die Instanz als Zeichenfolge für die Ausgabe

Alias ​​: [ valueOf, render]

Instanz.toJSON()

Gibt die JSON-Darstellung der Tabelle zurück. Dadurch können wir auch JSON.stringifydie Instanz aufrufen.

Beispiel:

1 2 3 4 5 6 7 8 9
var table = new AsciiTable('Title') table .setHeading('id', 'name') .addRow(1, 'Bob') .addRow(2, 'Steve') console.log(table.toJSON()) console.log(JSON.stringify(table))
1 2 3 4 5 6 7 8
{ title: 'Title' , heading: [ 'id', 'name' ] , rows: [ [ 1, 'Bob' ] , [ 2, 'Steve' ] ] }
1
{"title":"Title","heading":["id","name"],"rows":[[1,"Bob"],[2,"Steve"]]}

Instanz.fromJSON(obj)

Füllen Sie die Tabelle mit dem JSON-Objekt auf, sollte mit der toJSONobigen Ausgabe übereinstimmen.

Alias ​​: [ parse]

Beispiel:

1 2 3 4 5 6 7 8
var table = new AsciiTable().fromJSON({ title: 'Title' , heading: [ 'id', 'name' ] , rows: [ [ 1, 'Bob' ] , [ 2, 'Steve' ] ] })

Instanz.clear()

Alle Tabellendaten löschen/zurücksetzen

Alias ​​: [ reset]

Instanz.clearRows()

Alle Zeilendaten zurücksetzen, Titel und Überschriften beibehalten.

Installieren

Mit npm

1
npm install ascii-table

Mitwirkende

Matthew Oliveira Peter Daum

Lizenz

(Die MIT-Lizenz)

Copyright (c) 2013 Beau Sorensen

Hiermit wird jeder Person, die eine Kopie dieser Software und der zugehörigen Dokumentationsdateien (die „Software“) erhält, kostenlos die Erlaubnis erteilt, mit der Software ohne Einschränkung zu handeln, einschließlich und ohne Einschränkung der Rechte zur Nutzung, zum Kopieren, Ändern und Zusammenführen , Kopien der Software zu veröffentlichen, zu verteilen, unterzulizenzieren und/oder zu verkaufen und Personen, denen die Software zur Verfügung gestellt wird, dies zu gestatten, vorbehaltlich der folgenden Bedingungen:

Der obige Urheberrechtshinweis und dieser Genehmigungshinweis müssen in allen Kopien oder wesentlichen Teilen der Software enthalten sein.

DIE SOFTWARE WIRD „WIE BESEHEN“ ZUR VERFÜGUNG GESTELLT, OHNE JEGLICHE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GEWÄHRLEISTUNG, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GEWÄHRLEISTUNG DER MARKTGÄNGIGKEIT, DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND DER NICHTVERLETZUNG. IN KEINEM FALL SIND DIE AUTOREN ODER COPYRIGHT-INHABER FÜR JEGLICHE HAFTUNG ANSPRÜCHE, SCHÄDEN ODER ANDERE HAFTUNG, SEI ES AUS EINER VERTRAGLICHEN HANDLUNG, AUS unerlaubter Handlung ODER ANDERWEITIG, DIE SICH AUS, AUS ODER IN VERBINDUNG MIT DER SOFTWARE ODER DER NUTZUNG ODER ANDEREN HANDELN MIT DER SOFTWARE ERGEBEN.