在定义json时无法读取undefined的属性

时间:2016-08-25 15:00:50

标签: javascript jquery json

我在html页面中创建了一个json数组,但我一直在

  

无法读取未定义的属性

var opleidingArray = VragenEnScores.vragen[index].opleidingen;

<script>
$(document).ready(function() {

  var VragenEnScores = {
    "vragen":[
      {"nummer":1, 
       "opleidingen":[
         {'naam':'3D artist', 'scores':[10,20,30,400], 'resultaat':0}
         ,{'naam':'3D print productdesigner', 'scores':[5,2,8,4], 'resultaat':0}
         ,{'naam':'Aannemer installateur centrale verwarming/ combi solar thermal', 'scores':[0,2,9,4]}
         ]
      },
      {"nummer":2, 
       "opleidingen":[
         {'naam':'3D artist', 'scores':[1,2,3,4], 'resultaat':0}
         ,{'naam':'3D print productdesigner', 'scores':[5,2,8,4], 'resultaat':0}
         ,{'naam':'Aannemer installateur centrale verwarming/ combi solar thermal', 'scores':[0,2,9,4]}
         ]
      },
      {"nummer":3, 
       "opleidingen":[
         {'naam':'3D artist', 'scores':[1,2,3,4], 'resultaat':0}
         ,{'naam':'3D print productdesigner', 'scores':[5,2,8,4], 'resultaat':0}
         ,{'naam':'Aannemer installateur centrale verwarming/ combi solar thermal', 'scores':[0,2,9,4]}
         ]
      }
    ]
  };

  var antwoordenPerVraag = [3,4,7,8];
  var resultatenPerOpleiding = new Object();

  antwoordenPerVraag.forEach(berekenEindresultaten);

  function berekenEindresultaten(item, index) {
    var opleidingArray = VragenEnScores.vragen[index].opleidingen;

    var params = {antwoord: item};

    opleidingArray.forEach(haalScoresOp.bind(params));
  }

  function haalScoresOp(item, index) {

    if (isNaN(resultatenPerOpleiding[item.naam])) {
      resultatenPerOpleiding[item.naam] = 0;
      resultatenPerOpleiding[item.naam] += item.scores[this.antwoord];
    } else {
      resultatenPerOpleiding[item.naam] += item.scores[this.antwoord];
    }
  }

  var sortable = [];
  for (var resultaat in resultatenPerOpleiding)
        sortable.push([resultaat, resultatenPerOpleiding[resultaat]])
  sortable.sort(
      function(a, b) {
          return b[1] - a[1]
      }
  )

  $('#resultaat').text(sortable);



});
</script>

有人知道可能出现什么问题吗?

0 个答案:

没有答案