ASCII-Tabelle
Einfache Tabellenausgabe zum Debuggen von Knoten, aber Sie könnten wahrscheinlich mehr damit machen, da es nur eine Zeichenfolge ist.
Inhaltsverzeichnis
- Verwendung
- Beispiel
- API
- Statische Methoden
- Instanzmethoden
- setBorder([Kante], [Füllung], [oben], [unten])
- removeBorder()
- setAlign(idx, Richtung)
- setAlignLeft(idx)
- setAlignCenter(idx)
- setAlignRight(idx)
- setTitle(Titel)
- getTitle()
- setTitleAlign(richtung)
- setTitleAlignLeft()
- setTitleAlignCenter()
- setTitleAlignRight()
- sort([iterator])
- sortColumn(idx, [iterator])
- setHeading(Überschrift, [...])
- setHeadingAlign(Richtung)
- setHeadingAlignLeft()
- setHeadingAlignCenter()
- setHeadingAlignRight()
- addRow(Zeile, [...])
- addRowMatrix(Zeilen)
- setJustify([aktiviert])
- toString()
- toJSON()
- fromJSON(obj)
- klar()
- clearRows()
- Installieren
- Mitwirkende
- Lizenz
Verwendung
Node.js
1var 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
8var 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
10var 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.factory
Weitere Informationen zur Instanziierung finden Sie unter:
AsciiTable.factory([Titel], [Optionen])
Ersteller der Tabelleninstanz
title
- Tabellentitel (optional, Standardnull
)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
10var 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 Ausrichtenlen
– Gesamtlänge der erstellten Zeichenfolgepad
- Füll-/Füllzeichen (optional, Standard' '
)
Beispiel:
1table.align(AsciiTable.LEFT, 'hey', 7) // 'hey '
AsciiTable.alignLeft(val, len, [pad])
val
- Zeichenfolge zum Ausrichtenlen
– Gesamtlänge der erstellten Zeichenfolgepad
- Füll-/Füllzeichen (optional, Standard' '
)
Beispiel:
1table.alignLeft('hey', 7, '-') // 'hey----'
AsciiTable.alignCenter(val, len, [pad])
val
- Zeichenfolge zum Ausrichtenlen
– Gesamtlänge der erstellten Zeichenfolgepad
- Füll-/Füllzeichen (optional, Standard' '
)
Beispiel:
1table.alignCenter('hey', 7) // ' hey '
AsciiTable.alignRight(val, len, [pad])
val
- Zeichenfolge zum Ausrichtenlen
– Gesamtlänge der erstellten Zeichenfolgepad
- Füll-/Füllzeichen (optional, Standard' '
)
Beispiel:
1table.alignRight('hey', 7) // ' hey'
AsciiTable.alignAuto(val, len, [pad])
Versuchen Sie eine intelligente Ausrichtung der bereitgestellten Daten val
. String
Die Eingabe wird linksbündig und Number
die Typen rechtsbündig ausgerichtet.
val
- Zeichenfolge zum Ausrichtenlen
– Gesamtlänge der erstellten Zeichenfolgepad
- Füll-/Füllzeichen (optional, Standard' '
)
Beispiel:
1table.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 Arraysval
- Füllwert (optional)
Beispiel:
1AsciiTable.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 edge
Argument ü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
7var 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
3table.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 Ausrichtendirection
- Ausrichtungsrichtung, (AsciiTable.LEFT
,AsciiTable.CENTER
,AsciiTable.RIGHT
)
Beispiel:
1
2
3
4
5table
.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
3var table = new AsciiTable('Old Title')
table.setTitle('New Title')
Instanz.getTitle()
Rufen Sie den aktuellen Titel der Tabelle ab
Beispiel:
1table.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
4table.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 Sortiereniterator
– 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
5table.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
7var 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
4table.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“,undefined
gilt als wahr
Beispiel:
1
2
3
4
5table
.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.stringify
die Instanz aufrufen.
Beispiel:
1
2
3
4
5
6
7
8
9var 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 toJSON
obigen Ausgabe übereinstimmen.
Alias : [ parse
]
Beispiel:
1
2
3
4
5
6
7
8var 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
1npm install ascii-table
Mitwirkende
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.