2
所以我有這兩個函數,然後調用它們的另一個函數。看起來我正在失去範圍,在函數調用之間。函數不返回正確的值
var determineInteractionType = function(interaction){
var param = interaction.parameterSet.param;
param.forEach(function(parameter, index, array){
if(parameter.name === "INTERACTION-TYPE"){
return parameter.value;
}
});
return null;
};
var getInteraction = function(id){
customInteractions.forEach(function(interaction, index, array){
if(interaction.id == id){
alert(id);
return interaction;
}
});
return null;
};
這是調用函數的一段代碼。錯誤在於,即使getInteraction正在返回一個值,它仍然顯示出determinInteraction正在傳遞一個null參數。
var _convertStemFromEAS = function(stem) {
var reg = new RegExp('@\{PRESENTATION-HTML-INTERACTION\}="(.*?)"');
var result;
var count = 1;
while ((result = reg.exec(stem)) !== null) {
var Match = result[0];
var dropdownGuid = result[1];
//The Error seems to be right here
var interactionType = determineInteractionType(getInteraction(id));
if(interactionType === "shortTextInteraction"){
var escaped = $('<div/>').text('<select id="' + NewTmpGuid() + '" data-choice-id="' + dropdownGuid + '" style="width:100px;" data-count="' + count + '" class="easSelection"><option>DD' + count + '</option></select>').html();
}else if(interactionType === "essayTextInteraction"){
}
count += 1;
stem = stem.replace(Match, escaped);
}
return stem;
};
我剛剛想出什麼我需要做的,但不知其所以然。爲了原因,我會給你加5。 javascript中的常見錯誤模式我覺得。 – RadleyMith
我不認爲'return false'會打破'forEach'。 –