Таблица Ascii
Удобный вывод таблицы для отладки узлов, но вы, вероятно, могли бы сделать с ней больше, поскольку это всего лишь строка.
Оглавление
- Применение
- Пример
- API
- Статические методы
- Методы экземпляра
- setBorder([край], [заливка], [сверху], [снизу])
- удалить границу()
- setAlign (idx, направление)
- setAlignLeft (idx)
- setAlignCenter (idx)
- setAlignRight (idx)
- setTitle(заголовок)
- getTitle()
- setTitleAlign (направление)
- setTitleAlignLeft()
- setTitleAlignCenter()
- setTitleAlignRight()
- сортировка([итератор])
- sortColumn(idx, [итератор])
- setHeading(заголовок, [...])
- setHeadingAlign (направление)
- УстановитьHeadingAlignLeft()
- УстановитьHeadingAlignCenter()
- УстановитьHeadingAlignRight()
- addRow(строка, [...])
- addRowMatrix (строки)
- setJustify([включено])
- нанизывать()
- toJSON()
- изJSON(объект)
- прозрачный()
- ОчиститьРовс()
- Установить
- Авторы
- Лицензия
Применение
Node.js
1var AsciiTable = require('ascii-table')
Браузер
1<script src="ascii-table.min.js"></script>
Примечание . При использовании в браузере он будет помещен в разделwindow.AsciiTable
Пример
Основное использование
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 |
'----------------'
Мы также можем сделать простую таблицу без заголовка и заголовков.
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
Таблица Ascii
См.: AsciiTable.factoryподробности о создании экземпляра.
AsciiTable.factory([название], [опции])
Создатель экземпляра таблицы
title- заголовок таблицы (необязательно, по умолчаниюnull)options- варианты таблицы (по желанию)prefix- строковый префикс для добавления к каждой строке при рендеринге
Примечание. Если вместо объекта передается объектtitle,fromJSON
метод будет использоваться для заполнения таблицы.
Пример:
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(направление, значение, длина, [pad])
Ярлык к одному из трех следующих методов
direction- направление выравнивания (AsciiTable.LEFT,AsciiTable.CENTER,AsciiTable.RIGHT)val- строка для выравниванияlen- общая длина созданной строкиpad- символ заполнения/заполнения (необязательно, по умолчанию' ')
Пример:
1table.align(AsciiTable.LEFT, 'hey', 7) // 'hey '
AsciiTable.alignLeft(val, len, [pad])
val- строка для выравниванияlen- общая длина созданной строкиpad- символ заполнения/заполнения (необязательно, по умолчанию' ')
Пример:
1table.alignLeft('hey', 7, '-') // 'hey----'
AsciiTable.alignCenter(val, len, [pad])
val- строка для выравниванияlen- общая длина созданной строкиpad- символ заполнения/заполнения (необязательно, по умолчанию' ')
Пример:
1table.alignCenter('hey', 7) // ' hey '
AsciiTable.alignRight(val, len, [pad])
val- строка для выравниванияlen- общая длина созданной строкиpad- символ заполнения/заполнения (необязательно, по умолчанию' ')
Пример:
1table.alignRight('hey', 7) // ' hey'
AsciiTable.alignAuto(val, len, [pad])
Попытайтесь выполнить интеллектуальное выравнивание предоставленных val, Stringввод будет выровнен по левому краю, Numberтипы будут выровнены по правому краю.
val- строка для выравниванияlen- общая длина созданной строкиpad- символ заполнения/заполнения (необязательно, по умолчанию' ')
Пример:
1table.align(AsciiTable.LEFT, 'hey', 7) // 'hey '
AsciiTable.arrayFill(len, [val])
Создайте новый массив с заданной длиной, заполненный заданным значением, в основном используемый внутри.
len- длина массиваval- значение заполнения (необязательно)
Пример:
1AsciiTable.arrayFill(4, 0) // [0, 0, 0, 0]
Instance Methods
экземпляр.setBorder([край], [заливка], [сверху], [снизу])
Установите символы границ для рендеринга, если аргументы не переданы, они будут сброшены до значений по умолчанию. Если edgeпередан один аргумент, он будет использоваться для всех границ.
edge- горизонтальные края (необязательно, по умолчанию|)fill-вертикальные края (необязательно, по умолчанию-)top- верхние углы (необязательно, по умолчанию.)bottom- нижние углы (необязательно, по умолчанию')
Пример:
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 *
************************
экземпляр.removeBorder()
Пример:
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
экземпляр.setAlign(idx, направление)
idx-индекс столбца для выравниванияdirection- направление выравнивания, (AsciiTable.LEFT,AsciiTable.CENTER,AsciiTable.RIGHT)
Пример:
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 | |
'-------------------------------------'
экземпляр.setAlignLeft(idx)
Псевдоним дляinstance.setAlign(idx, AsciiTable.LEFT)
экземпляр.setAlignCenter(idx)
Псевдоним дляinstance.setAlign(idx, AsciiTable.CENTER)
экземпляр.setAlignRight(idx)
Псевдоним дляinstance.setAlign(idx, AsciiTable.RIGHT)
экземпляр.setTitle(заголовок)
title- название таблицы
Пример:
1
2
3var table = new AsciiTable('Old Title')
table.setTitle('New Title')
экземпляр.getTitle()
Получить текущий заголовок таблицы
Пример:
1table.getTitle() // 'New Title'
экземпляр.setTitleAlign(направление)
direction- направление выравнивания таблицы
Пример:
1
экземпляр.setTitleAlignLeft()
Псевдоним дляinstance.setTitleAlign(AsciiTable.LEFT)
экземпляр.setTitleAlignCenter()
Псевдоним дляinstance.setTitleAlign(AsciiTable.CENTER)
экземпляр.setTitleAlignRight()
Псевдоним дляinstance.setTitleAlign(AsciiTable.RIGHT)
экземпляр.сортировка(итератор)
iterator- метод сортировки по строкам
Пример:
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 |
'----------------'
экземпляр.sortColumn(индекс, итератор)
Ярлык сортировки для таргетинга на определенный столбец
index- идентификатор столбца для сортировкиiterator- метод сортировки для работы со значениями столбцов
Пример:
1
2
3
4// This is quivalent to the `sort` example above
table.sortColumn(2, function(a, b) {
return a - b
})
экземпляр.setHeading(заголовок, [...])
Задает заголовки столбцов таблицы, принимает аргументы так же, как иaddRow
heading- массив заголовков или аргументы
Пример:
1
2
3
4
5table.setHeading('ID', 'Key', 'Value')
// or:
table.setHeading(['ID', 'Key', 'Value'])
экземпляр.setHeadingAlign(направление)
direction-
Пример:
1
экземпляр.setHeadingAlignLeft()
Псевдоним дляinstance.setHeadingAlignLeft(AsciiTable.LEFT)
экземпляр.setHeadingAlignCenter()
Псевдоним дляinstance.setHeadingAlignLeft(AsciiTable.CENTER)
экземпляр.setHeadingAlignRight()
Псевдоним дляinstance.setHeadingAlignLeft(AsciiTable.RIGHT)
экземпляр.addRow(строка, [...])
Строки можно добавлять с помощью одного аргумента массива или аргументов, если при вызове метода используется несколько аргументов.
row- массив или аргументы значений столбца
Пример:
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 |
'---------------'
экземпляр.addRowMatrix(строки)
Массовая addRowоперация
rows- многомерный массив строк
Пример:
1
2
3
4table.addRowMatrix([
[2, 'John', 34]
, [3, 'Jim', 83]
])
экземпляр.setJustify(включено)
Выровняйте все столбцы, чтобы они были одинаковой ширины
enabled- логическое значение для включения или выключения выравнивания,undefinedсчитается истинным
Пример:
1
2
3
4
5table
.addRow('1', 'two', 'three')
.setJustify()
console.log(table.toString())
1
2
3.-----------------------.
| 1 | two | three |
'-----------------------'
экземпляр.toString()
Отображение экземпляра как строки для вывода
Псевдоним : [ valueOf, render]
экземпляр.toJSON()
Верните представление таблицы в формате JSON, это также позволяет нам вызывать
JSON.stringifyэкземпляр.
Пример:
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"]]}
экземпляр.fromJSON(объект)
Заполните таблицу из объекта json, она должна соответствовать приведенному toJSONвыше выводу.
Псевдоним : [ parse]
Пример:
1
2
3
4
5
6
7
8var table = new AsciiTable().fromJSON({
title: 'Title'
, heading: [ 'id', 'name' ]
, rows: [
[ 1, 'Bob' ]
, [ 2, 'Steve' ]
]
})
экземпляр.очистить()
Очистить/сбросить все данные таблицы
Псевдоним : [ reset]
экземпляр.clearRows()
Сбросить все данные строк, сохранить заголовок и заголовки.
Установить
С НПМ
1npm install ascii-table
Авторы
Лицензия
(Лицензия MIT)
Авторские права (c) 2013 г. Бо Соренсен
Настоящим бесплатно любому лицу, получившему копию данного программного обеспечения и связанных с ним файлов документации («Программное обеспечение»), предоставляется разрешение на работу с Программным обеспечением без ограничений, включая, помимо прочего, права на использование, копирование, изменение, объединение. публиковать, распространять, сублицензировать и/или продавать копии Программного обеспечения, а также разрешать лицам, которым предоставлено Программное обеспечение, делать это при соблюдении следующих условий:
Вышеупомянутое уведомление об авторских правах и настоящее уведомление о разрешении должны быть включены во все копии или существенные части Программного обеспечения.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИЯМИ КОММЕРЧЕСКОЙ ЦЕННОСТИ, ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ И НЕНАРУШЕНИЯ ПРАВ. АВТОРЫ ИЛИ ОБЛАДАТЕЛИ АВТОРСКИХ ПРАВ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ СОБЫТИЯ. ПРЕТЕНЗИИ, УБЫТКИ ИЛИ ДРУГАЯ ОТВЕТСТВЕННОСТЬ ПО ДЕЙСТВИЮ КОНТРАКТА, ПРАВОНАРУШЕНИЮ ИЛИ ДРУГИМ ОБРАЗОМ, ВОЗНИКАЮЩИЕ ИЗ, ИЗ ИЛИ В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ДРУГИМИ ДЕЛАМИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.



