首页 > 解决方案 > 未捕获的类型错误:无法读取未定义的属性“0”(测验应用程序)

问题描述

我在 localStorage 中有一个数组,我一直在尝试将它传递给一个变量JSON.parse()

let questions = JSON.parse(localStorage.getItem("questions"));
console.log(questions[0]);

questions[0]日志_

0: {
  numb: 1,
  question: "What something ....?",
  answer: "choice a",
  options: Array(4)
}
1: {
  numb: 2,
  question: "What something  2....?.",
  answer: "choice b",
  options: Array(4)
}
2: {
  numb: 3,
  question: "What something 3....?",
  answer: "choice c",
  options: Array(4)
}

但是当我尝试将其放入变量中时,如下所示

 let option_tag = '<div class="option"><span>'+ questions[index].options[0] +'</span></div>'

出现此错误Uncaught TypeError: Cannot read property '0' of undefined

我已经搜索了所有内容,但没有成功。我做错了什么?

编辑:发生错误的代码

function showQuetions(index){

const que_text = document.querySelector(".que_text");

//creating a new span and div tag for question and option and passing the value using array index
let que_tag = '<span>'+ questions[index].numb + ". " + questions[index].question +'</span>';

let option_tag = '<div class="option"><span>'+ questions[index].options[0] +'</span></div>'
+ '<div class="option"><span>'+ questions[index].options[1] +'</span></div>'
+ '<div class="option"><span>'+ questions[index].options[2] +'</span></div>'
+ '<div class="option"><span>'+ questions[index].options[3] +'</span></div>';

que_text.innerHTML = que_tag; //adding new span tag inside que_tag
option_list.innerHTML = option_tag; //adding new div tag inside option_tag

const option = option_list.querySelectorAll(".option");

// set onclick attribute to all available options
for(i=0; i < option.length; i++){
    option[i].setAttribute("onclick", "optionSelected(this)");
}
}

标签: javascriptarraysjson

解决方案


推荐阅读