为什么document.write方法不起作用?
这是我的代码:
<SCRIPT LANGUAGE = "JavaScript">
var candidateArray = ['Mr R Green...', 'Ms O Brown...', 'Ms Y Black...', 'Mr G White...', 'Ms B Grey....','Ms I Blue....', 'Mr V Pink....'];
var onlineVotesArray = [21,47,23,11,56,47,30];
var paperVotesArray = [12,4,20,11,5,4,17];
var totalVotesArray;
var x = 0;
var lengthPaperVotesArray = length(paperVotesArray);
for x in range(lengthCandidateArray) {
totalVotes = onlineVotesArray(x) + paperVotesArray(x);
totalVotesArray(x) = totalVotes;
x = x + 1;
}
document.write(totalVotesArray);
</SCRIPT>
顺便说一句,我必须使用document.write方法,而不是其他变种。
答案 0 :(得分:4)
你的语法都错了。
要访问数组中的项目,请使用[]
而非()
,并且for/in
循环需要在表达式周围使用括号。
//-v--------------------------------v------parentheses
for (x in range(lengthCandidateArray)) {
totalVotes = onlineVotesArray[x] + paperVotesArray[x];
// ---------------v-v-----------^-^------------------^-^-----square brackets
totalVotesArray[x] = totalVotes;
x = x + 1;
}
此外,您正在调用length
和range
方法。如果你没有在另一个脚本中使用它们,那么它们就不存在了。
如果您只想获取数组的.length
,请使用该属性。而且您不需要range
方法来循环。
var candidateArray = ['Mr R Green...', 'Ms O Brown...', 'Ms Y Black...', 'Mr G White...', 'Ms B Grey....','Ms I Blue....', 'Mr V Pink....'];
var onlineVotesArray = [21,47,23,11,56,47,30];
var paperVotesArray = [12,4,20,11,5,4,17];
var totalVotesArray = [];
var lengthPaperVotesArray = paperVotesArray.length;
for (var x = 0; x < lengthPaperVotesArray; x++) {
totalVotesArray[x] = onlineVotesArray[x] + paperVotesArray[x];
}
document.write(totalVotesArray);
示例: http://jsfiddle.net/8fkZq/
修改:: 强>
如果您希望输出合并这样的候选人:
Mr R Green... : 33,
Ms O Brown... : 51,
Ms Y Black... : 43,
Mr G White... : 22,
Ms B Grey.... : 61,
Ms I Blue.... : 51,
Mr V Pink.... : 47
...你可以改变循环:
for (var x = 0; x < lengthPaperVotesArray; x++) {
totalVotesArray[x] = '<br>' + candidateArray[x] + ' : ' + (onlineVotesArray[x] + paperVotesArray[x]);
}
答案 1 :(得分:0)
您正在引用“lengthCandidateArray”,但这未定义。
如果您打开了firebug,您可能会看到相关的错误。如果您将来提出问题,这是至关重要的信息。
答案 2 :(得分:0)
您的javascript代码中似乎有一些错误
var totalVotesArray = [];
var x = 0;
var lengthPaperVotesArray =paperVotesArray.length;
for (x = 0;x < lengthPaperVotesArray ; x++){
totalVotes = onlineVotesArray[x] + paperVotesArray[x];
totalVotesArray.push(x) = totalVotes;
}
document.write(totalVotesArray.join(', '));//i don't think you can write an array
答案 3 :(得分:0)
这充满了语法错误。我不知道你用什么语言编程,但jScript显然不是其中之一。首先,长度(x)不是全局方法。如果您想获得数组的长度,请使用array.length
。接下来,js中for ... in的语法是for (x in array) { ... }
。此外,如果要将变量作为数组引用,则必须将其声明为(var array = [];
)。最后,要访问数组的元素,请使用array[x]
,而不是数组(x)。试试这个:
<SCRIPT type="text/javascript">
var candidateArray = ['Mr R Green...', 'Ms O Brown...', 'Ms Y Black...', 'Mr G White...', 'Ms B Grey....','Ms I Blue....', 'Mr V Pink....'];
var onlineVotesArray = [21,47,23,11,56,47,30];
var paperVotesArray = [12,4,20,11,5,4,17];
var totalVotesArray = [];
var x = 0;
var lengthPaperVotesArray = paperVotesArray.length;
for (x in paperVotesArray){
totalVotes = onlineVotesArray[x] + paperVotesArray[x];
totalVotesArray[x] = totalVotes;
x = x + 1;
}
document.write(totalVotesArray);
</SCRIPT>