リストを加工(その1): Notion Formula 解説 (17)

はじめに

Notion Formula の第14回目から4日間にわたって、Formula 2.0 から導入されたリストに対するメソッドを順次解説する予定でした。今回は、リストを加工するメソッドを解説しています。今回でリストは終わる予定でしたが、filter と map はかなり複雑なので、こちらは明日のその2で解説することとし、今日はそれ以外のものを解説します。すでに逆引き Formula のページに関数説明があるので、このページを見ながら解説していきます。

特定値を取得: at, first, last, find, findIndex, slice

リストを調査: empty, length, contains, includes, every, some,

リストから計算: max, min, mean, sum, median

リストを加工(その1): concat, flat, reverse, sort, unique

リストを加工(その2): filter, map

リストから文字列(文字列の回で解説): join

concat()

「concat()」は2つのリストを連結したリストを返します。文法は以下のようになります。リストは数値・文字列・日付・チェックボックスのいずれも可能です。

prop("list1").concat(prop("list2"))

concat (Number list)
concat (String list)
concat (Date list)
concat (Checkbox list)

flat()

「flat()」はリストのリストを単一のリストに平坦化します。例えば複数のリレーション先のマルチセレクトを map で取得したりすると、マルチセレクトのリストをネストしたリストが得られます。この時にマルチセレクトの値を取り出そうとするには、フラットにしたリストを作る必要があります。それを実現するのが flat() です。文法は以下のようになります。

prop("list").flat()

リストは数値・文字列・日付・チェックボックスのいずれも可能です。オリジナルの数値リストは以下のようにリストのリストに設定していますが、flat 後は [3, 5, 2] のようにフラット化されています。

flat (Number list)

文字列も同様です。 ["a", ["b1", "b2"]]["a", "b1", "b2"] とフラット化されます。

flat (String list)

日付のリストも同様です。

flat (Date list)

チェックボックスも同様です。

flat (Checkbox list)

reverse()

「reverse()」は反転したリストを返します。こちらも中身は、数値・文字列・日付・チェックボックスのいずれも可能です。文法は以下のようになります。

prop("list").reverse()

reverse (Number list)
reverse (String list)
reverse (Date list)
reverse (Checkbox list)

sort()

「sort()」は入力リストの並べ替えられたバージョンを返します。これも数値・文字列・日付・チェックボックスのいずれも可能です。文法は以下のようになります。

sort (Number list)
sort (String list)
sort (Date list)
sort (Checkbox list)

sort の引数にキーを設定することができます。文法は以下のようになり、current で指定できる式を記述します。

prop("list").sort(currentに関する式)

この最も多い使い道は、リレーション先のプロパティをキーにする使い方です。ここでは、subs というリレーションをページの数値プロパティをキーとして並び替えしています。

sort with key

unique()

「unique()」は入力リスト内の一意の値のリストを返します。文法は以下のようになります。

prop("list").unique()

unique (Number list)
unique (String list)
unique (Date list)
unique (Checkbox list)

おわりに

リストについては 4 日で終わる予定でしたが、filter と map の前まででかなり長くなってしまったので、こちらはその 2 に回すことにします。今回は、それ以外のリストを加工する基本的なメソッドを紹介しました。