lodash
lodashはJavScriptのユーティリティーライブラリです。kintoneカスタマイズでは大変便利なライブラリです。
"_"がグローバルオブジェクトで出てきたときは、lodashが利用されています。
_.isEmpty(str)
kintone開発ではおそらく一番利用される関数です。これは値の空を確認する関数で、フィールドに値が存在するかどうかを検査するときにつかいます。
const dropdownValue = ev.record.ドロップダウン.value;
if(_.isEmpty(dropdownValue)){
ev.record.文字列一行.value = dropdownValue
}
_.isEmptyで書かない場合は以下のように書く必要があります。
null != dropdownValue || '' != drowdownValue
検査に"==="を使うと不具合を起こしやすいのも特徴です。(nullとundefinedを両方意識する必要がある。)
_.isEmptyは、配列の空も検査できるため、チェックボックスでも同じように利用することができます。
空値のチェックはとにかくバグを埋め込みやすいので、ぼくはlodashで書く癖をつけています。
_.range(start, end, step=1)
startからstepずつ加算していき、end未満までの数値を格納した配列を返します。
stepの初期値は1。
10~20までの偶数値をサブテーブルに入れたい場合は以下のように書きます。
const rec = kintone.app.record.get();
rec.record.テーブル.value = _.range(10, 21, 2) //[10,12,...,20]
.map(num => {
const subtableItem = {
数値 : {
value : num,
type : "NUMBER"
}
}
return {
value : subtableItem
}
});
kintone.app.record.set(rec);
_.uniq(array)
逆にテーブルやレコードに複数の値が入っていて、重複を排除したい場合に利用します。
サブテーブルに入っているメールアドレスを文字列複数行に改行で区切って設置してみます。
const rec = kintone.app.record.get();
//【メールアドレス】というフィールドの値を配列にして取り出す。
const customerEmails = rec.record.顧客リスト.value.map((subtableRow) => {
const subtableItem = subtableRow.value;
return subtableItem.メールアドレス.value
})
.filter(
//空値を排除
mail => !_.isEmpty(mail)
);
const customerEmailsUnique = _.uniq(customerEmails);
//【メール一覧】は文字列複数行。メールアドレスごとに改行して配置
rec.record.メール一覧.value = customerEmailsUnique.join('\n')
kintone.app.record.set(rec);
_.chunk(array, size=1)
配列をsizeに示される要素数で切り出します。sizeの初期値は1。
kintoneでは登録/更新は100件ずつしかできませんので、よく使いますね。
const nums = _.range(1, 2001, 1);//[1,2,3,4...2000]
const chunks = _.chunk(nums, 100); //[[1,2...], [101, 102...], [201...]...]
const appId = `222`;
const body = {
requests : chunks.map((numArray /* [1,2...100] */) => {
return {
method : 'POST',
api : `/k/v1/records.json`,
payload : {
app : appId,
records : numArray.map((num /* 1 */) => {
return {
連番 : { value : num}
}
})
}
}
})
};
//kintoneのREST APIでのデータ登録は100件ずつしかできない。
await kintone.api(kintone.api.url('/k/v1/bulkRequest.json', true), 'POST', body);
まとめ
lodashは開発で必須のライブラリなので、うまく使えるとうれしいですね!
_.sampleなんかもよく使う関数です。まだ知らない関数があるかもしれない。
おすすめの使い方がありましたら、教えてください😊
kintoneのプラグイン開発や研修などを行っています。
お仕事のお話はこちらまで。