Javascript 我无法循环使用JSON并获取数据

Javascript 我无法循环使用JSON并获取数据,javascript,jquery,json,object,exception,Javascript,Jquery,Json,Object,Exception,我似乎无法循环我的音节,而我对我的单词做了完全相同的事情。但这确实有效,为什么 我的JSON: { "main_object": { "id": "new", "getExerciseTitle": "Example", "language": "nl_NL", "application": "lettergrepen", "main_object": { "title": "Example", "language": "nl_NL",

我似乎无法循环我的
音节
,而我对我的
单词
做了完全相同的事情。但这确实有效,为什么

我的JSON:

{
  "main_object": {
    "id": "new",
    "getExerciseTitle": "Example",
    "language": "nl_NL",
    "application": "lettergrepen",
  "main_object": {
    "title": "Example",
    "language": "nl_NL",
    "exercises": [{
      "word": "espresso",
      "syllables": [
        "es",
        "presso",
        "",
        ""
      ]
    }]
  },
  "dataType": "json"
}
}

我的
音节循环

var exerSyll = json.main_object.main_object.exercises;
$.map(exerSyll, function(exerSyll, s) {
  $(".syllable" + s).val(exercise.syllables)
});
function getWordPartInput(id, cValue){
  cValue = cValue || '';
  var wpInput = $('<input/>', {
    'class': 'form-group form-control syllable',
    'type': 'text',
    'value': cValue,
    'placeholder': 'Syllables',
    'name': 'Syllablescounter['+ SyllablesID++ +']'
   });
  return wpInput;
}
我的
word
的循环确实有效:

var exercise = json.main_object.main_object.exercises;
$.map(exercise, function(exercise, i) {
  $("#addOpdracht").click();
  $(".exerciseGetWordInput_" + i).val(exercise.word) 
});
它应该在哪里附加
音节

var exerSyll = json.main_object.main_object.exercises;
$.map(exerSyll, function(exerSyll, s) {
  $(".syllable" + s).val(exercise.syllables)
});
function getWordPartInput(id, cValue){
  cValue = cValue || '';
  var wpInput = $('<input/>', {
    'class': 'form-group form-control syllable',
    'type': 'text',
    'value': cValue,
    'placeholder': 'Syllables',
    'name': 'Syllablescounter['+ SyllablesID++ +']'
   });
  return wpInput;
}
函数getWordPartInput(id,cValue){
C值=C值| |'';
变量wpInput=$(''{
“类”:“窗体组窗体控制音节”,
“类型”:“文本”,
“值”:cValue,
“占位符”:“音节”,
“名称”:“音节计数器['+音节ID++']”
});
返回输入;
}
是否可以创建一个循环,并在音节输入中附加
音节
,在练习输入中附加
单词
?或者它必须是独立的循环?当我把所需的
音节
取回我的CMS时,我想保留正确的
单词


需要澄清的图片:我正在尝试获取所需单词的音节。

您的问题是在
map
函数回调中使用
exercesyl
,因此它将提升原始声明的
exercesyl
变量,这就是为什么您在代码中获得
Ecxeption

//First declaration of exerSyll 
var exerSyll = json.main_object.main_object.exercises;

//Reusing the same variable exerSyll in the callback
$.map(exerSyll, function(exerSyll, s) {
  //Will cause an exception beacause exerSyll declaration will be hoisted
  $(".syllable" + s).val(exercise.syllables)
});
您应该在回调中为变量使用另一个名称以避免异常

var exerSyll = json.main_object.main_object.exercises;

$.map(exerSyll, function(exer, s) {
  console.log(exer.syllables)
});
演示:

这是一个工作演示,显示了问题的解决方案

var json={
“主对象”:{
“id”:“新”,
“getExerciseTitle”:“示例”,
“语言”:“nl_nl”,
“应用程序”:“lettergrepen”,
“主对象”:{
“标题”:“示例”,
“语言”:“nl_nl”,
“练习”:[{
“单词”:“浓缩咖啡”,
“音节”:[
“es”,
“presso”,
"",
""
]
}]
},
“数据类型”:“json”
}
};
var exercysyl=json.main\u object.main\u object.exerces;
$.map(exercyl,function(exer,s){
控制台日志(练习音节)
});

第一个可能不起作用,因为没有声明exercise,您正在捕获变量,因为exercyslurs确实起作用。但我现在有个问题。。。如果你不介意的话,我可以发布一张图片,让你了解我想要实现的目标?是的,有什么问题吗?我用图片编辑了我的帖子,让你了解我的意思。我试图把正确的单词和音节的数据带回我的CMS,你看,但是代码会把音节和单词放在一起吗?还是音节会飞起来?我想让音节和单词本身连接起来。所以他们总是保持各自的运动状态block@D.Sof你只需要使用一个循环来处理单词和音节。啊,好了,有可能把这两个循环组合在一起吗?还是结构会完全改变?我很抱歉有这么多问题,我是javavscript/jquery的新手