リストの内容を調査: Notion Formula 解説 (15)

はじめに

Notion Formula の第14回目から4日間にわたって、Formula 2.0 から導入されたリストに対するメソッドを順次解説します。今回は、その中でリストの内容を調査するものを解説します。すでに逆引き Formula のページに関数説明があるので、このページを見ながら解説していきます。

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

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

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

リストを加工: concat, flat, reverse, sort, unique, filter, map

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

empty()

「empty()」は値が空の場合はtrueを返します。0、“”、[]は空とみなされます。Formula 1.0 の時はリスト以外の値に関する関数でしたが、Formula 2.0 からはリストにも対応しました。ここではリスト以外のものも解説します。数値の場合は、0または空の数値の時に True になります。

empty (Number)

文字列の場合には空文字列の時のみ True になります。

empty (String)

日付の場合も空文字列の時のみ True になります。

empty (Date)

チェックボックスの場合は、False の時のみ True になります。

empty (Checkbox)

今回の主役のリストの場合、空リストの時のみ True になります。

empty (List)

length()

「length()」は文字列を渡した場合、文字数を返します。リストを渡した場合にはリストの長さを返します。Formula 1.0 の時は文字列の長さを数えることで、ロールアップ先の件数などを数える裏技などに使われていました。

length (String value)

リストについては中身が何であっても要素数を返します。

length (Number list)
length (String list)
length (Date list)
length (Checkbox list)

contains(value)

「contains(value)」は検索文字列(value)が値に存在する場合はtrueを返します。Formula 2.0 からはリストの中に値(value)が含まれる場合にも true を返します。後半の機能は後述する includes と同じです。最初は文字列中の文字列の検索です。含まれる場合に True を返します。

contains (String value)

リストに関してはリスト内に要素が含まれていれば True を返します。

contains (Number list)
contains (String list)
contains (Date list)
contains (Checkbox list)

includes(value)

「include(value)」はリストに指定された値(value)が含まれている場合はtrueを返し、そうでない場合はfalseを返します。contents(value) のリストと同じ結果になります。

includes (Number list)
includes (Strig list)
includes (Date list)
includes (Checkbox)

every(current == xxx)

「every(current == xxx)」はリスト内のすべての項目が指定された条件(この場合は current == xxx)を満たす場合はtrueを返し、そうでない場合はfalseを返します。以下の例では value プロパティの値と等しいものを検索し、全てが満たされた時のみ true を返します。

prop("list").every(current == prop("value"))

every (Number list)
every (String list)
includes (Date list)
includes (Checkbox list)

some(current == xxx)

「some(current == xxx)」はリスト内のいずれかの項目が指定された条件(この場合は current == xxx)を満たす場合はtrueを返し、そうでない場合はfalseを返します。以下の例では value プロパティの値と等しいものを検索し、いずれか一つが満たされた時のみ true を返します。

prop("list").some(current == prop("value"))

some (Number list)
some (String list)
some (Date list)
some (Checkbox list)

おわりに

今回はリストに関するメソッドのうち、リストの状態をチェックするメソッドを解説しました。明日以降もリストに関する記事を続けていきます。