0. 質問の順番が固定のプログラム

以下のように入力してください。

// Text/Instructions
this.options.items.push({
          "type": "text",
           "title": "調査",
           "content": "以下の質問項目をよく読み,あなたにもっとも当てはまる選択肢を選んでください。"
        })

// Multiple choice
const items = [
  'わたしは犬が好きだ', 
  'わたしは猫が好きだ', 
  'わたしは鳥が好きだ', 
  'わたしは馬が好きだ', 
  'わたしは人が好きだ'
];
var itemNO;
for(let i = 0; i < items.length; i++){
  itemNO = i + 1;
  this.options.items.push({
          "required": true,
          "type": "radio",
          "options": [
            {
              "label": "あてはまらない",
              "coding": "1"
            },
            {
              "label": "ややあてはまらない",
              "coding": "2"
            },
            {
              "label": "どちらでもない",
              "coding": "3"
            },
            {
              "label": "ややあてはまる",
              "coding": "4"
            },
            {
              "label": "あてはまる",
              "coding": "5"
            }
          ],
          "label": itemNO +". "+ items[i],
          "name": "Q"+itemNO,
          "shuffle": false
        })
}

1. 連想配列に質問と番号を格納する

質問の順番をランダムにした場合でもデータでは,質問と番号の対応が変わらないようにします。

以下のようにオブジェクト(連想配列)として質問と番号を格納します。

後で使用する場合は,「itemsArray[i].label」や「itemsArray[i].name」で指定します。

データの型:配列・オブジェクト

// Multiple choice
const items = [
  'わたしは犬が好きだ', 
  'わたしは猫が好きだ', 
  'わたしは鳥が好きだ', 
  'わたしは馬が好きだ', 
  'わたしは人が好きだ'
];

//各項目と尺度名を配列に格納
var itemsArray = [];
var itemNO;

for(let i = 0; i < items.length; i++){
  itemNO = i + 1;
  itemsArray.push(
    {
      "label": items[i],
      "name": "Q"+itemNO
    }
  )
}

2. 連想配列をシャッフルする

連想配列の順番をシャッフルする場合は,「this.random.shuffle」を使います。

配列シャッフル:「random.shuffle」

//ランダム順にする場合に並び替え
itemsArray = this.random.shuffle(itemsArray)

3. シャッフルされた配列の内容を表示する