【问题标题】:Loop through array object循环遍历数组对象
【发布时间】:2020-05-02 15:07:36
【问题描述】:

我正在尝试遍历这个数组

var questions = [
    {
        ask: 'is Javascript the best language?',
        correct: 0,
        answer : [
            {text: 'yes'},
            {text: 'No'}
        ]
    },
    {
        ask: 'is Javascript the most popular language?',
        correct: 1,
        answer : [
            {text: 'yes'},
            {text: 'No'}
        ]
    },

]

关键是我想用这个循环得到每一个问题,并在控制台日志中得到这些问题

var currentQuestion = questions.length;

for( var i = 0; i < currentQuestion; i++){
   console.log(questions[i]);
}

但console.log 说:未捕获的类型错误:无法读取未定义的属性“长度”

【问题讨论】:

  • 您能否在此处使用jsfiddlesnippet 创建一个small demo 以显示正在发生的问题。
  • 我尝试重现您的解决方案,一切都很好。也许你没有导出问题?

标签: javascript arrays for-loop object


【解决方案1】:

变量 questions 似乎没有包含在同一个文件中。

【讨论】:

    【解决方案2】:

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects 上有关 js 对象的更多信息。

    var questions = [
        {
            ask: 'is Javascript the best language?',
            correct: 0,
            answer : [
                {text: 'yes'},
                {text: 'No'}
            ]
        },
        {
            ask: 'is Javascript the most popular language?',
            correct: 1,
            answer : [
                {text: 'yes'},
                {text: 'No'}
            ]
        },
    
    ];
    
    var currentQuestion = questions.length;
    
    for( var i = 0; i < currentQuestion; i++){
       console.log(questions[i].ask);
    }
    
    // es6 way 
    
    questions.map(q => {
       // console.log(q.ask); // will get all the questions
    })

    【讨论】:

      【解决方案3】:

      用于..:

      var questions = [
          {
              ask: 'is Javascript the best language?',
              correct: 0,
              answer : [
                  {text: 'yes'},
                  {text: 'No'}
              ]
          },
          {
              ask: 'is Javascript the most popular language?',
              correct: 1,
              answer : [
                  {text: 'yes'},
                  {text: 'No'}
              ]
          },
      
      ]
      
      for(let values of questions){
        console.log(values);
       }

      【讨论】:

        猜你喜欢
        • 2016-09-07
        • 1970-01-01
        • 2016-07-28
        • 2017-01-29
        • 2015-10-15
        • 2015-12-28
        • 1970-01-01
        相关资源
        最近更新 更多