Ascii-tabel
Gemakkelijke tabeluitvoer voor het debuggen van knooppunten, maar je zou er waarschijnlijk meer mee kunnen doen, omdat het maar een string is.
Inhoudsopgave
- Gebruik
- Voorbeeld
- API
- Statische methoden
- Instantiemethoden
- setBorder([rand], [opvullen], [boven], [onder])
- verwijderBorder()
- setAlign(idx, richting)
- setAlignLinks(idx)
- setAlignCenter(idx)
- setAlignRight(idx)
- setTitel(titel)
- getTitel()
- setTitleAlign(richting)
- setTitleAlignLeft()
- setTitleAlignCenter()
- setTitleAlignRight()
- sort([iterator])
- sortColumn(idx, [iterator])
- setHeading(kop, [...])
- setHeadingAlign(richting)
- setHeadingAlignLeft()
- setHeadingAlignCenter()
- setHeadingAlignRight()
- addRij(rij, [...])
- addRijMatrix(rijen)
- setJustify([ingeschakeld])
- toString()
- toJSON()
- vanJSON(obj)
- duidelijk()
- clearRijen()
- Installeren
- Bijdragers
- Licentie
Gebruik
Knooppunt.js
1var AsciiTable = require('ascii-table')
Browser
1<script src="ascii-table.min.js"></script>
Opmerking : als u het in de browser gebruikt, wordt het onder geplaatstwindow.AsciiTable
Voorbeeld
Basisgebruik
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 |
'----------------'
We kunnen ook een eenvoudige tabel maken zonder titel of kopjes.
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
AsciiTabel
Zie: AsciiTable.factory
voor details over instantiatie
AsciiTable.factory([titel], [opties])
Maker van tabelinstanties
title
- tabeltitel (optioneel, standaardnull
)options
- tafelopties (optioneel)prefix
- tekenreeksvoorvoegsel dat aan elke regel bij het renderen moet worden toegevoegd
Opmerking: als een object wordt doorgegeven in plaats van detitle
,fromJSON
wordt de methode gebruikt om de tabel te vullen.
Voorbeeld:
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(richting, val, len, [pad])
Snelkoppeling naar een van de drie volgende methoden
direction
- uitlijningsrichting (AsciiTable.LEFT
,AsciiTable.CENTER
,AsciiTable.RIGHT
)val
- tekenreeks om uit te lijnenlen
- totale lengte van de gemaakte stringpad
- opvulling / vulteken (optioneel, standaard' '
)
Voorbeeld:
1table.align(AsciiTable.LEFT, 'hey', 7) // 'hey '
AsciiTable.alignLeft(val, len, [pad])
val
- tekenreeks om uit te lijnenlen
- totale lengte van de gemaakte stringpad
- opvulling / vulteken (optioneel, standaard' '
)
Voorbeeld:
1table.alignLeft('hey', 7, '-') // 'hey----'
AsciiTable.alignCenter(val, len, [pad])
val
- tekenreeks om uit te lijnenlen
- totale lengte van de gemaakte stringpad
- opvulling / vulteken (optioneel, standaard' '
)
Voorbeeld:
1table.alignCenter('hey', 7) // ' hey '
AsciiTable.alignRight(val, len, [pad])
val
- tekenreeks om uit te lijnenlen
- totale lengte van de gemaakte stringpad
- opvulling / vulteken (optioneel, standaard' '
)
Voorbeeld:
1table.alignRight('hey', 7) // ' hey'
AsciiTable.alignAuto(val, len, [pad])
Probeer een intelligente uitlijning van de opgegeven invoer uit te voeren val
, String
de invoer wordt links uitgelijnd en Number
de typen worden rechts uitgelijnd.
val
- tekenreeks om uit te lijnenlen
- totale lengte van de gemaakte stringpad
- opvulling / vulteken (optioneel, standaard' '
)
Voorbeeld:
1table.align(AsciiTable.LEFT, 'hey', 7) // 'hey '
AsciiTable.arrayFill(len, [val])
Maak een nieuwe array op de gegeven len, gevuld met de gegeven waarde, voornamelijk intern gebruikt
len
- lengte van de arrayval
- vulwaarde (optioneel)
Voorbeeld:
1AsciiTable.arrayFill(4, 0) // [0, 0, 0, 0]
Instance Methods
instance.setBorder([edge], [fill], [top], [bottom])
Stel de randtekens in voor weergave. Als er geen argumenten worden doorgegeven, wordt deze teruggezet naar de standaardwaarden. Als er één edge
arg wordt doorgegeven, wordt deze voor alle randen gebruikt.
edge
- horizontale randen (optioneel, standaard|
)fill
-verticale randen (optioneel, standaard-
)top
-bovenhoeken (optioneel, standaard.
)bottom
- onderste hoeken (optioneel, standaard'
)
Voorbeeld:
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 *
************************
instance.removeBorder()
Voorbeeld:
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
instance.setAlign(idx, richting)
idx
-kolomindex om uit te lijnendirection
- uitlijningsrichting, (AsciiTable.LEFT
,AsciiTable.CENTER
,AsciiTable.RIGHT
)
Voorbeeld:
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 | |
'-------------------------------------'
instance.setAlignLeft(idx)
Alias voorinstance.setAlign(idx, AsciiTable.LEFT)
instance.setAlignCenter(idx)
Alias voorinstance.setAlign(idx, AsciiTable.CENTER)
instance.setAlignRight(idx)
Alias voorinstance.setAlign(idx, AsciiTable.RIGHT)
instance.setTitle(titel)
title
- tabeltitel
Voorbeeld:
1
2
3var table = new AsciiTable('Old Title')
table.setTitle('New Title')
instance.getTitle()
Haal de huidige titel van de tabel op
Voorbeeld:
1table.getTitle() // 'New Title'
instance.setTitleAlign(richting)
direction
- richting van de tafeluitlijning
Voorbeeld:
1
instance.setTitleAlignLeft()
Alias voorinstance.setTitleAlign(AsciiTable.LEFT)
instance.setTitleAlignCenter()
Alias voorinstance.setTitleAlign(AsciiTable.CENTER)
instance.setTitleAlignRight()
Alias voorinstance.setTitleAlign(AsciiTable.RIGHT)
instance.sort(iterator)
iterator
- sorteermethode om tegen de rijen aan te lopen
Voorbeeld:
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 |
'----------------'
instance.sortColumn(index, iterator)
Sorteersnelkoppeling voor het targeten van een specifieke kolom
index
- kolom-IDX om te sortereniterator
- sorteermethode om tegen kolomwaarden uit te voeren
Voorbeeld:
1
2
3
4// This is quivalent to the `sort` example above
table.sortColumn(2, function(a, b) {
return a - b
})
instance.setHeading(kop, [...])
Stel de kolomkoppen voor de tabel in, neemt argumenten op dezelfde manier alsaddRow
heading
- koparray of argumenten
Voorbeeld:
1
2
3
4
5table.setHeading('ID', 'Key', 'Value')
// or:
table.setHeading(['ID', 'Key', 'Value'])
instance.setHeadingAlign(richting)
direction
-
Voorbeeld:
1
instance.setHeadingAlignLeft()
Alias voorinstance.setHeadingAlignLeft(AsciiTable.LEFT)
instance.setHeadingAlignCenter()
Alias voorinstance.setHeadingAlignLeft(AsciiTable.CENTER)
instance.setHeadingAlignRight()
Alias voorinstance.setHeadingAlignLeft(AsciiTable.RIGHT)
instance.addRow(rij, [...])
Rijen kunnen worden toegevoegd met behulp van een enkel array-argument, of de argumenten als er meerdere argumenten worden gebruikt bij het aanroepen van de methode.
row
- array of argumenten van kolomwaarden
Voorbeeld:
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 |
'---------------'
instance.addRowMatrix(rijen)
Bulkoperatie addRow
_
rows
- multidimensionale reeks rijen
Voorbeeld:
1
2
3
4table.addRowMatrix([
[2, 'John', 34]
, [3, 'Jim', 83]
])
instance.setJustify(ingeschakeld)
Geef alle kolommen dezelfde breedte
enabled
- boolean voor het in- of uitschakelen van uitvullen,undefined
wordt als waar beschouwd
Voorbeeld:
1
2
3
4
5table
.addRow('1', 'two', 'three')
.setJustify()
console.log(table.toString())
1
2
3.-----------------------.
| 1 | two | three |
'-----------------------'
instance.toString()
Geef de instantie weer als een tekenreeks voor uitvoer
Alias : [ valueOf
, render
]
instance.toJSON()
Retourneer de JSON-weergave van de tabel, hierdoor kunnen we ook
JSON.stringify
de instantie aanroepen.
Voorbeeld:
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"]]}
instance.fromJSON(obj)
Vul de tabel in vanuit het json-object, deze moet overeenkomen met de toJSON
bovenstaande uitvoer.
Alias : [ parse
]
Voorbeeld:
1
2
3
4
5
6
7
8var table = new AsciiTable().fromJSON({
title: 'Title'
, heading: [ 'id', 'name' ]
, rows: [
[ 1, 'Bob' ]
, [ 2, 'Steve' ]
]
})
instance.clear()
Wis/reset alle tabelgegevens
Alias : [ reset
]
instance.clearRows()
Reset alle rijgegevens, behoudt titel en koppen.
Installeren
Met npm
1npm install ascii-table
Bijdragers
Licentie
(De MIT-licentie)
Copyright (c) 2013 Beau Sorensen
Hierbij wordt gratis toestemming verleend aan elke persoon die een kopie van deze software en bijbehorende documentatiebestanden (de 'Software') verkrijgt, om zonder beperking in de Software te handelen, inclusief maar niet beperkt tot de rechten om te gebruiken, kopiëren, wijzigen, samenvoegen publiceren, distribueren, in sublicentie geven en/of kopieën van de Software verkopen, en personen aan wie de Software wordt geleverd toestemming geven om dit te doen, met inachtneming van de volgende voorwaarden:
De bovenstaande copyrightkennisgeving en deze toestemmingsverklaring zullen worden opgenomen in alle kopieën of substantiële delen van de Software.
DE SOFTWARE WORDT GELEVERD 'AS IS', ZONDER ENIGE GARANTIE, EXPLICIET OF IMPLICIET, INCLUSIEF MAAR NIET BEPERKT TOT DE GARANTIES VAN VERKOOPBAARHEID, GESCHIKTHEID VOOR EEN BEPAALD DOEL EN NIET-INBREUK. IN GEEN GEVAL ZULLEN DE AUTEURS OF HOUDERS VAN HET AUTEURSRECHT AANSPRAKELIJK ZIJN VOOR ENIGE CLAIM, SCHADE OF ANDERE AANSPRAKELIJKHEID, HETZIJ IN EEN CONTRACTGEDING, ONRECHTMATIGE DAAD OF ANDERSZINS, VOORTVLOEIEND UIT, UIT OF IN VERBAND MET DE SOFTWARE OF HET GEBRUIK OF ANDERE HANDELINGEN IN DE SOFTWARE.