北極にChatGPTがやって来ました。エルフの Sam Elfman は、プレゼントと子どもたちを管理するアプリケーションを開発しています。
見た目を良くするために、彼は オブジェクトの配列 を受け取って、それを テキストテーブル に変換する drawTabledraw_table 関数を作りたいと考えています。
描画されるテーブルは次の条件を満たす必要があります。
A, B, C...)の文字を持つこと。関数は第2引数として sortBy を受け取り、これは 行を並べ替える 際に使うフィールド名を表します。並び順は、値が文字列なら アルファベット昇順、数値なら 数値の昇順 になります。
どのようにテーブルを描画すべきか、以下の例を見てください。
drawTable(
[
{ name: 'Charlie', city: 'New York' },
{ name: 'Alice', city: 'London' },
{ name: 'Bob', city: 'Paris' }
],
'name'
)
// +---------+----------+
// | A | B |
// +---------+----------+
// | Alice | London |
// | Bob | Paris |
// | Charlie | New York |
// +---------+----------+
drawTable(
[
{ gift: 'Book', quantity: 5 },
{ gift: 'Music CD', quantity: 1 },
{ gift: 'Doll', quantity: 10 }
],
'quantity'
)
// +----------+----+
// | A | B |
// +----------+----+
// | Music CD | 1 |
// | Book | 5 |
// | Doll | 10 |
// +----------+----+draw_table(
[
{ 'name': 'Charlie', 'city': 'New York' },
{ 'name': 'Alice', 'city': 'London' },
{ 'name': 'Bob', 'city': 'Paris' }
],
'name'
)
# +---------+----------+
# | A | B |
# +---------+----------+
# | Alice | London |
# | Bob | Paris |
# | Charlie | New York |
# +---------+----------+
draw_table(
[
{ 'gift': 'Book', 'quantity': 5 },
{ 'gift': 'Music CD', 'quantity': 1 },
{ 'gift': 'Doll', 'quantity': 10 }
],
'quantity'
)
# +----------+----+
# | A | B |
# +----------+----+
# | Music CD | 1 |
# | Book | 5 |
# | Doll | 10 |
# +----------+----+
