(小技)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で動作を確認しています。