(小技)undefined と 空文字のスマートな if 文判定
kintone では、未入力のフィールドの値を取得する場合、API を実行する画面によって未入力を表す値が異なることがあります。
フィールドが空の場合
たとえば「文字列 1 行」フィールドの場合、それぞれ次の値が返ります。
-
レコード詳細画面
1 2 3 4
"文字列__1行__0": { "type": "SINGLE_LINE_TEXT", "value": "" }
-
レコード追加画面
1 2 3 4
"文字列__1行__0": { "type": "SINGLE_LINE_TEXT", "value": "undefined" }
そんな時に、レコード詳細画面と編集画面で似たような処理をしたい時に役立つ判定文を紹介します。
「文字列 1 行」フィールドが null もしくは undefined じゃない時に何か処理をしたい場合は次のように書きます。
|
|
っあれ?思ったより簡単ですね!
if での評価結果は、null でも undefined でも空文字でも false になるのでこんなに簡単に書けちゃいます。
数値の 0 や空文字 ''
も false と評価されます。
一方、空の配列 []
や、空のオブジェクト {}
は true と評価されるので注意しましょう。
値 | 評価 |
---|---|
null | false |
undefined | false |
0(数値) | false |
-0(数値) | false |
''(空文字) | false |
false | false |
[] | true |
{} | true |
-1(0, -0以外の数値) | true |
'0'(文字列) | true |
true | true |
これで画面による戻り値の違いも気にせずプログラムが書けますね!
この Tips は、2022 年 12 月版 kintone で動作を確認しています。