0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「調整さん 日付×時刻 直積集合 ジェネレータ」を作った話

Posted at

解決したい問題

オンライン上で日程調整をできる調整さんというサービスがあります。
主催者が候補日時を入力し、イベントページのURLを参加者に送付します。それを元に、参加者が候補日時の参加可否を入力する仕様になっています。

みんなで集まり、ご飯を食べるケースを想像してください。
予定が合うなら、お昼ご飯でも夜ご飯でも構わないとします。
すると、主催者は下記のように候補日を入力しなければなりません。

1月1日(日) 12:00~
1月1日(月) 18:00~
1月2日(日) 12:00~
1月2日(月) 18:00~
1月3日(日) 12:00~
1月3日(月) 18:00~
...

同じ時間を何度も入力する必要があり、面倒だと思いませんか?

作ったもの

そこで、「調整さん 日付×時刻 直積集合 ジェネレータ」を作りました。

499206905-3185ac45-a088-4402-a54a-f1eb528b92ad (1).png

このツールを使うと、日程と時刻の直積集合を作ってくれます。
出力されたテキストを右上のコピーボタンでコピーし、調整さんのイベントページに張り付ければ完成です。

工夫した点

ソースコードから抜粋します。
下記は、入力された日付と時刻を基に二重ループをして、出力用データを作成する処理です。
高階関数を使うと、おしゃれに書くことができます。可読性が高いかどうかは、不明です。

    let out_arr =
        date_arr.map(text => {
            let ret =
                times_arr
                    .map(e => {
                        return text + " " + e;
                    });

            return ret.join("\n");
        })

※MIT LICENSEです

まとめ

現状の課題を説明し、「調整さん 日付×時刻 直積集合 ジェネレータ」を紹介しました。
また、ソースコードの一部を抜粋し、高階関数の部分を説明しました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?