Tabla Ascii
Salida de tabla fácil para la depuración de nodos, pero probablemente podría hacer más con ella, ya que es solo una cadena.
Tabla de contenido
- Uso
- Ejemplo
- API
- Métodos estáticos
- Métodos de instancia
- setBorder ([borde], [relleno], [superior], [inferior])
- removeBorder ()
- setAlign (idx, dirección)
- setAlignLeft (idx)
- setAlignCenter (idx)
- setAlignRight (idx)
- setTitle (título)
- getTitle ()
- setTitleAlign (dirección)
- setTitleAlignLeft ()
- setTitleAlignCenter ()
- setTitleAlignRight ()
- sort ([iterador])
- sortColumn (idx, [iterador])
- setHeading (título, [...])
- setHeadingAlign (dirección)
- setHeadingAlignLeft ()
- setHeadingAlignCenter ()
- setHeadingAlignRight ()
- addRow (fila, [...])
- addRowMatrix (filas)
- setJustify ([habilitado])
- Encadenar()
- toJSON ()
- fromJSON (obj)
- claro()
- clearRows ()
- Instalar en pc
- Colaboradores
- Licencia
Uso
Node.js
1var AsciiTable = require('ascii-table')
Navegador
1<script src="ascii-table.min.js"></script>
Nota : Si se usa en el navegador, se colocará debajowindow.AsciiTable
Ejemplo
Uso básico
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 |
'----------------'
También podemos hacer una tabla simple sin título o encabezados.
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
Ver: AsciiTable.factory
para obtener detalles sobre la creación de instancias
AsciiTable.factory ([título], [opciones])
Creador de instancias de tabla
title
-título de la tabla (opcional, predeterminadonull
)options
-opciones de mesa (opcional)prefix
-prefijo de cadena para agregar a cada línea en el renderizado
Nota: Si se pasa un objeto en lugar detitle
, elfromJSON
método se utilizará para completar la tabla.
Ejemplo:
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 (dirección, val, len, [pad])
Acceso directo a uno de los tres métodos siguientes
direction
- dirección de alineación (AsciiTable.LEFT
,AsciiTable.CENTER
,AsciiTable.RIGHT
)val
-cadena para alinearlen
-longitud total de la cadena creadapad
-padding / fill char (opcional, predeterminado' '
)
Ejemplo:
1table.align(AsciiTable.LEFT, 'hey', 7) // 'hey '
AsciiTable.alignLeft (val, len, [pad])
val
-cadena para alinearlen
-longitud total de la cadena creadapad
-padding / fill char (opcional, predeterminado' '
)
Ejemplo:
1table.alignLeft('hey', 7, '-') // 'hey----'
AsciiTable.alignCenter (val, len, [pad])
val
-cadena para alinearlen
-longitud total de la cadena creadapad
-padding / fill char (opcional, predeterminado' '
)
Ejemplo:
1table.alignCenter('hey', 7) // ' hey '
AsciiTable.alignRight (val, len, [pad])
val
-cadena para alinearlen
-longitud total de la cadena creadapad
-padding / fill char (opcional, predeterminado' '
)
Ejemplo:
1table.alignRight('hey', 7) // ' hey'
AsciiTable.alignAuto (val, len, [pad])
Intente hacer una alineación inteligente de lo proporcionado val
, la String
entrada se alineará a la izquierda, los Number
tipos se alinearán a la derecha.
val
-cadena para alinearlen
-longitud total de la cadena creadapad
-padding / fill char (opcional, predeterminado' '
)
Ejemplo:
1table.align(AsciiTable.LEFT, 'hey', 7) // 'hey '
AsciiTable.arrayFill (len, [val])
Cree una nueva matriz en el len dado, rellena con el valor dado, que se usa principalmente internamente
len
-longitud de la matrizval
-fill value (opcional)
Ejemplo:
1AsciiTable.arrayFill(4, 0) // [0, 0, 0, 0]
Instance Methods
instance.setBorder ([borde], [relleno], [superior], [inferior])
Establezca los caracteres del borde para la representación, si no se pasan argumentos, se restablecerá a los valores predeterminados. Si edge
se pasa un solo argumento , se utilizará para todos los bordes.
edge
-bordes horizontales (opcional, predeterminado|
)fill
-bordes verticales (opcional, predeterminado-
)top
-esquinas superiores (opcional, predeterminado.
)bottom
-esquinas inferiores (opcional, predeterminado'
)
Ejemplo:
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 ()
Ejemplo:
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, dirección)
idx
-índice de columna para alineardirection
- dirección de alineación, (AsciiTable.LEFT
,AsciiTable.CENTER
,AsciiTable.RIGHT
)
Ejemplo:
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 para instance.setAlign(idx, AsciiTable.LEFT)
instance.setAlignCenter (idx)
Alias para instance.setAlign(idx, AsciiTable.CENTER)
instance.setAlignRight (idx)
Alias para instance.setAlign(idx, AsciiTable.RIGHT)
instance.setTitle (título)
title
-título de la tabla
Ejemplo:
1
2
3var table = new AsciiTable('Old Title')
table.setTitle('New Title')
instance.getTitle ()
Obtener el título actual de la tabla
Ejemplo:
1table.getTitle() // 'New Title'
instance.setTitleAlign (dirección)
direction
-Dirección de alineación de la mesa
Ejemplo:
1
instance.setTitleAlignLeft ()
Alias para instance.setTitleAlign(AsciiTable.LEFT)
instance.setTitleAlignCenter ()
Alias para instance.setTitleAlign(AsciiTable.CENTER)
instance.setTitleAlignRight ()
Alias para instance.setTitleAlign(AsciiTable.RIGHT)
instance.sort (iterador)
iterator
-método de clasificación para ejecutar contra las filas
Ejemplo:
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 (índice, iterador)
Atajo de clasificación para apuntar a una columna específica
index
-columna idx para ordenariterator
-método de clasificación para ejecutar contra valores de columna
Ejemplo:
1
2
3
4// This is quivalent to the `sort` example above
table.sortColumn(2, function(a, b) {
return a - b
})
instance.setHeading (título, [...])
Establecer los encabezados de columna para la tabla, toma argumentos de la misma manera que addRow
heading
-matriz de encabezado o argumentos
Ejemplo:
1
2
3
4
5table.setHeading('ID', 'Key', 'Value')
// or:
table.setHeading(['ID', 'Key', 'Value'])
instance.setHeadingAlign (dirección)
direction
-
Ejemplo:
1
instance.setHeadingAlignLeft ()
Alias para instance.setHeadingAlignLeft(AsciiTable.LEFT)
instance.setHeadingAlignCenter ()
Alias para instance.setHeadingAlignLeft(AsciiTable.CENTER)
instance.setHeadingAlignRight ()
Alias para instance.setHeadingAlignLeft(AsciiTable.RIGHT)
instance.addRow (fila, [...])
Las filas se pueden agregar usando un solo argumento de matriz, o los argumentos si se usan múltiples argumentos al llamar al método.
row
-arreglo o argumentos de valores de columna
Ejemplo:
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 (filas)
addRow
Operación a granel
rows
-matriz multidimensional de filas
Ejemplo:
1
2
3
4
5table.addRowMatrix([
[2, 'John', 34]
, [3, 'Jim', 83]
])
instance.setJustify (habilitado)
Justifique que todas las columnas tengan el mismo ancho
enabled
-booleano para activar o desactivar justificar,undefined
considerado verdadero
Ejemplo:
1
2
3
4
5table
.addRow('1', 'two', 'three')
.setJustify()
console.log(table.toString())
1
2
3.-----------------------.
| 1 | two | three |
'-----------------------'
instance.toString ()
Renderiza la instancia como una cadena para la salida.
Alias : [ valueOf
, render
]
instancia.toJSON ()
Devuelve la representación JSON de la tabla, esto también nos permite llamar
JSON.stringify
a la instancia.
Ejemplo:
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"]]}
instancia.fromJSON (obj)
Complete la tabla desde el objeto json, debe coincidir con la toJSON
salida anterior.
Alias : [ parse
]
Ejemplo:
1
2
3
4
5
6
7
8var table = new AsciiTable().fromJSON({
title: 'Title'
, heading: [ 'id', 'name' ]
, rows: [
[ 1, 'Bob' ]
, [ 2, 'Steve' ]
]
})
instancia.clear ()
Borrar / restablecer todos los datos de la tabla
Alias : [ reset
]
instancia.clearRows ()
Restablece todos los datos de las filas, mantiene el título y los encabezados.
Instalar en pc
Con npm
1npm install ascii-table
Colaboradores
Licencia
(La licencia del MIT)
Derechos de autor (c) 2013 Beau Sorensen
Por la presente se otorga permiso, sin cargo, a cualquier persona que obtenga una copia de este software y los archivos de documentación asociados (el 'Software'), para operar con el Software sin restricciones, incluidos, entre otros, los derechos de uso, copia, modificación, fusión , publicar, distribuir, sublicenciar y / o vender copias del Software, y permitir que las personas a las que se les proporcione el Software lo hagan, sujeto a las siguientes condiciones:
El aviso de copyright anterior y este aviso de permiso se incluirán en todas las copias o partes sustanciales del Software.
EL SOFTWARE SE PROPORCIONA "TAL CUAL", SIN GARANTÍA DE NINGÚN TIPO, EXPRESA O IMPLÍCITA, INCLUYENDO, PERO NO LIMITADO A, LAS GARANTÍAS DE COMERCIABILIDAD, APTITUD PARA UN PROPÓSITO PARTICULAR Y NO INFRACCIÓN. DAÑOS U OTRA RESPONSABILIDAD, YA SEA EN UNA ACCIÓN DE CONTRATO, AGRAVIO O DE OTRO MODO, QUE SURJAN DE, FUERA DE O EN RELACIÓN CON EL SOFTWARE O EL USO U OTROS NEGOCIOS EN EL SOFTWARE.