拆分阵列与一个人的ActionScript
问题描述:
快速阵列的问题...所以我有此数组:拆分阵列与一个人的ActionScript
var bodyText:Array = ["1||^^1a::##1b||1", "2||^^2a::##2b||2"];
我需要像这样来解析和格式化:
问题:1个
正确答案:1A
不正确的答案:1B
反馈:1
问题:2
正确答案:2A
不正确的答案:2B
反馈:2
我很接近的解决方案,但不管是什么原因我在用正确/不正确钥匙的问题,比如,这算什么我的代码痕迹:
Question: 1
Correct Answer: 1a
^^1a
##1b
Incorrect Answer: 1b
Feedback: 1
Question: 2
Correct Answer: 2a
^^2a
##2b
Incorrect Answer: 2b
Feedback: 2
这是我的脚本,非常感谢任何帮助!谢谢!
var bodyText:Array = ["1||^^1a::##1b||1", "2||^^2a::##2b||2"];
var _txt:String;
for (var i:Number = 0; i < bodyText.length; i++) {
var _tb:Array = bodyText[i].split("||");
for (var j:Number = 0; j < _tb.length; j++) {
//question
_txt = "Question: " + _tb[0] + "\n";
//answers
var _kb:Array = _tb[1].split("::");
for (var k:Number = 0; k < _kb.length; k++) {
_txt += _kb[k].split("^^").join("Correct Answer: ") + "\n";
_txt += _kb[k].split("##").join("Incorrect Answer: ") + "\n";
}
//feedback
_txt += "Feedback: " + _tb[2] + "\n";
}
trace(_txt);
}
答
我知道了......
var bodyText:Array = ["1||^^1a::##1b||1", "2||^^2a::##2b::##2c||2"];
var _txt:String;
for (var i:Number = 0; i < bodyText.length; i++) {
var _tb:Array = bodyText[i].split("||");
for (var j:Number = 0; j < _tb.length; j++) {
//Question:
_txt = "Question: " + _tb[0] + "\n";
//Answers:
var _kb:Array = _tb[1].split("::");
for (var k:Number = 0; k < _kb.length; k++) {
if (_kb[k].indexOf("^^") != -1) {
_txt += _kb[k].split("^^").join("Correct Answer: ") + "\n";
} else {
_txt += _kb[k].split("##").join("Incorrect Answer: ") + "\n";
}
}
//Feedback:
_txt += "Feedback: " + _tb[2] + "\n";
}
trace(_txt);
}
答
_txt += _kb[0].split("^^").join("Correct Answer: ") + "\n";
_txt += _kb[1].split("##").join("Incorrect Answer: ") + "\n";
如果每题只有一个正确的答案,一个不正确的答案以上就足够了。
你所得到的^^1a
的原因是因为你是如何分裂
for (var k:Number = 0; k < _kb.length; k++) {
_txt += _kb[k].split("^^").join("Correct Answer: ") + "\n";
_txt += _kb[k].split("##").join("Incorrect Answer: ") + "\n";
}
此行
_kb[k].split("^^").join("Correct Answer: ") + "\n";
替换^^
为KB的[0] 但第二线
_txt += _kb[k].split("##").join("Incorrect Answer: ") + "\n";
未找到##
和上下一迭代返回^^1a
这将是相反的,K现在为1:##1b
答
你的for循环第二是不必要的,请参阅下面的代码(试了,工作):
var bodyText:Array = ["1||^^1a::##1b||1", "2||^^2a::##2b||2"];
var _txt:String;
for (var i:Number = 0; i < bodyText.length; i++) {
var _tb:Array = bodyText[i].split("||");
for (var j:Number = 0; j < _tb.length; j++) {
//question
_txt = "Question: " + _tb[0] + "\n";
//answers
var _kb:Array = _tb[1].split("::");
_txt += _kb[0].split("^^").join("Correct Answer: ") + "\n";
_txt += _kb[1].split("##").join("Incorrect Answer: ") + "\n";
//feedback
_txt += "Feedback: " + _tb[2] + "\n";
}
trace(_txt);
}
干杯, Rob
知道了!没关系感谢!更新下面的代码: – worked 2011-04-09 16:17:04