グループの中にテーブルを入れる方法(複数)

複数のグループにスペースフィールドを配置し、そこに各グループに対応したテーブルを入れるカスタマイズを試みています。
ひとまず成功したのですが、長ったらしいのでfor文を使おうとしたところ、設定が反映されませんでした。
何かお気づきの点がございましたらご教授いただけませんでしょうか。

・各テーブルのフィールドコード:
Table1~12
・各グループ内のスペース要素ID:
TableSpace1~12
・反映タイミング
レコード追加時、レコード編集時

成功したコード

(() => {
  'use strict';
  kintone.events.on([
    'app.record.index.show',
    'app.record.detail.show',
    'app.record.edit.submit'
    ], (event) => {
    const Table = ["Table1","Table2","Table3","Table4","Table5","Table6","Table7","Table8","Table9","Table10","Table11","Table12",];
    const TableSpace = ["TableSpace1","TableSpace2","TableSpace3","TableSpace4","TableSpace5","TableSpace6","TableSpace7","TableSpace8","TableSpace9","TableSpace10","TableSpace11","TableSpace12",];
    for (let i = 0; i < 12; i++) {
      const subtable = kintone.app.record.getFieldElement(Table[i]); // ()の中にサブテーブルフィールドコードを入れる
      kintone.app.record.getSpaceElement(TableSpace[i]).append(subtable); // getSpaceElement の()の中にスペースフィールドコードを入れる
    }
  });
})();

エラーは出ないものの、設定が反映されないコード

(() => {
  'use strict';
  kintone.events.on([
    'app.record.index.show',
    'app.record.detail.show',
    'app.record.edit.submit'
    ], (event) => {
    const Table = [];
    const TableSpace = [];
    for (let i = 1; i < 13; i++) {
      const sti = i.toString(); //iを文字列に変換
      Table.push(`Table${sti}`); //テーブル配列に要素を追加
      const subtable = kintone.app.record.getFieldElement(Table[i]); // ()の中にサブテーブルフィールドコードを入れる
      TableSpace.push(`TableSpace${sti}`); //スペース配列に要素を追加
      kintone.app.record.getSpaceElement(TableSpace[i]).append(subtable); // getSpaceElement の()の中にスペースフィールドコードを入れる
    }
  });
})();

質問者と同じ状態にできているのか不明ですが、
こちらで試したら
Error: Usage: kintone.app.record.getFieldElement(fieldCode)
というエラーがでました。

const subtable = kintone.app.record.getFieldElement(Table[i]); 

for文をはじめのコードは i が0始まりだったのに
2番目のコードは i が1始まりだったからみたいなみたいなことのようです。

(() => {
  'use strict';
  kintone.events.on([
    'app.record.detail.show',
    'app.record.edit.submit'
    ], (event) => {
    const Table = [];
    const TableSpace = [];
    for (let i = 1; i < 2; i++) {
      const sti = i.toString(); //iを文字列に変換
      Table.push(`Table${sti}`); //テーブル配列に要素を追加
      const subtable = kintone.app.record.getFieldElement(Table[i-1]); // ()の中にサブテーブルフィールドコードを入れる
      TableSpace.push(`TableSpace${sti}`); //スペース配列に要素を追加
      kintone.app.record.getSpaceElement(TableSpace[i-1]).append(subtable); // getSpaceElement の()の中にスペースフィールドコードを入れる
    }
  });
})();
「いいね!」 1

ご指摘の通りi-1にしたところ、うまくいきました。
配列はi=0からはじめないとうまくいかないということでしょうか…勉強不足と経験不足でわかりませんが、今後は意識してみることにします。
ありがとうございました。

「いいね!」 1

すみません。はじめの回答に書き忘れました。

質問文で触れられていない

このイベントは抜きました。

配列は0から始めないといけないか?
JavaScriptではユーザー設定で簡単に変更できるような仕組みはなさそうです。
Excel VBAなら
Option Base 1
という指定があります。
Excelの場合A1から始まるのでそうした方が便利とか歴史的な理由があるかも知れません。

今回の例でいえば、初期化する時に

 const Table = [undefined];

とダミー要素を入れておいて pushしていき、forのループ回数の上限を合わせれば
いいかもしれません。
だったら、はじめからTable0というフィールドコードにしておけばと思いますが

3)
グループ | kintone ヘルプ

を読むと
標準機能ではグループにテーブルを入れられないのに入れると
どのような副作用があるのかわかりませんでした。

「いいね!」 2

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。