-4

为什么 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 方法并且没有其他变体。

4

4 回答 4

4

你的语法全错了。

要访问数组中的项目,请使用[]not (),并且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;
}

此外,您正在调用lengthrange方法。如果您在另一个脚本中没有它们,那么它们就不存在。

如果您只是想获取.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]);
}

示例:http: //jsfiddle.net/8fkZq/1/

于 2011-06-27T14:28:52.377 回答
0

您正在引用“lengthCandidateArray”,但这没有定义。

如果你打开 firebug,你可能会看到一个相关的错误。如果您将来提出问题,这是至关重要的信息。

于 2011-06-27T14:27:03.377 回答
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
于 2011-06-27T14:32:46.327 回答
0

这充满了语法错误。我不知道您习惯使用哪种语言进行编程,但 jScript 显然不是其中之一。首先,length(x) 不是全局方法。如果要获取数组的长度,请使用array.length. 接下来在 js 中 for...in 的语法是for (x in array) { ... }. 此外,如果您想将变量引用为数组,则必须将其声明为 ( var array = [];)。最后,要访问数组的元素,请使用array[x],而不是 array(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>
于 2011-06-27T14:34:21.193 回答