ユーザー選択で複数選択された値を文字列へコピーしたい

お世話になっております。

タイトルの件について、ユーザー選択の値をnameで取得し、文字列へコピーを行っております。

現在下記コードで行っているのですが、複数選択された場合も1人しかコピーできない状況です。

(function () {
    "use strict";
    var events = [
        'app.record.create.show',
        'app.record.edit.show',
        'app.record.create.change.ユーザー選択',
        'app.record.edit.change.ユーザー選択'
    ];
    kintone.events.on(events, function(event) {
        kintone.app.record.setFieldShown('文字列', false);
        var record = event.record;
        var user = record['ユーザー選択']['value'][0].name || '';
        record['文字列']['value'] = user;
        return event;
    });
})();

恐らく、ユーザー選択はvalueが配列なので、for文などを使って記述しないといけないと思っているのですが、どのように書いてよいかわからず、躓いております。

大変恐縮でございますが、ご教授いただいたければ幸いでございます。

よろしくお願いいたします。

Naoさんこんにちは。

配列を対象に繰り返し処理を書くことについては、こちらの記事等を参考にされたらいいと思いますよ。

https://developer.cybozu.io/hc/ja/articles/115003765686

 

基本の基本については、JavaScript for文 等で検索すれば、初心者向けの解説がたくさん出てきます。

お互いがんばりましょう!

Nao様

おそらく、こんな形で動くのではないでしょうか。文字列フィールドの種類が「複数行」であれば、カンマ区切りより改行の方が私は好みです。

組織フィールドやユーザー選択で、同じように扱えるはずです。

私の場合、CSVでダウンロードする際に code だけでなく name の値も欲しいので、こういう処理をちょこちょこやっています。

    kintone.events.on(events, function(event) {
        kintone.app.record.setFieldShown('文字列', false);
        var record = event.record;
var names = '';
for (var i in record['ユーザー選択'].value){
if (names !== '') {
name += ', ' ; //複数行文字列で改行するなら '\r'
}
  names += record['ユーザー選択'].value[i].name;
}
        record['文字列']['value'] = names;
        return event;
    });

milkyway0307様、Shotaro Matsuda 様

ご返信ありがとうございます。

milkyway0307様

ご教授いただいたコードにて設定が出来ました。

また、改行コード等の方法もご教授いただきありがとうございます。

今後ともよろしくお願いいたします。