Таблица 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 г. Бо Соренсен
Настоящим бесплатно любому лицу, получившему копию данного программного обеспечения и связанных с ним файлов документации («Программное обеспечение»), предоставляется разрешение на работу с Программным обеспечением без ограничений, включая, помимо прочего, права на использование, копирование, изменение, объединение. публиковать, распространять, сублицензировать и/или продавать копии Программного обеспечения, а также разрешать лицам, которым предоставлено Программное обеспечение, делать это при соблюдении следующих условий:
Вышеупомянутое уведомление об авторских правах и настоящее уведомление о разрешении должны быть включены во все копии или существенные части Программного обеспечения.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИЯМИ КОММЕРЧЕСКОЙ ЦЕННОСТИ, ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ И НЕНАРУШЕНИЯ ПРАВ. АВТОРЫ ИЛИ ОБЛАДАТЕЛИ АВТОРСКИХ ПРАВ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ СОБЫТИЯ. ПРЕТЕНЗИИ, УБЫТКИ ИЛИ ДРУГАЯ ОТВЕТСТВЕННОСТЬ ПО ДЕЙСТВИЮ КОНТРАКТА, ПРАВОНАРУШЕНИЮ ИЛИ ДРУГИМ ОБРАЗОМ, ВОЗНИКАЮЩИЕ ИЗ, ИЗ ИЛИ В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ДРУГИМИ ДЕЛАМИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.