问题是 - 在for循环之后数组数据是如何消失的。
解释 - 最初变量“bra_data”接收一个字符串,例如“6!”或任何“x!”或“x operator y”形式的任何数学运算符。然后它被分成一个数组。
var bra_data = bra_data.split(" "); //bra data array
然后使用index of,i被设置为包含数学运算符的数组项。
if(bra_data.indexOf("!")!=-1) {
i = bra_data.indexOf("!");
}
然后使用数组索引处理答案。
var x = (bra_data[i - 1] * 1);
var i, x_fact;
x_fact = 1;
alert(bra_data[i - 1]); //A
alert(bra_data[i]); //B
for (i = 1; i <= x; i++) {
x_fact = x_fact * i;
}
alert(bra_data[i - 1]); //C
在// C处理后,它会将数组项警告为“未定义”,为什么?
答案 0 :(得分:-1)
感谢您的回答。在for循环中使用不同的变量'l'有助于它。
var x = (bra_data[i - 1] * 1);
var l, x_fact;
x_fact = 1;
alert(bra_data[i - 1]); //A
alert(bra_data[i]); //B
for (l = 1; l <= x; l++) {
x_fact = x_fact * i;
}
alert(bra_data[i - 1]); //C
这是一个愚蠢的错误,但以下代码运作良好。因此变量从未在我脑海中浮现。
var i, x_fact, x_minus_y, x_minus_y_fact;
x_fact=1;
var x = (bra_data[i-1]*1);
var y = (bra_data[i+1]*1);
for(i=1; i<=x; i++) {
x_fact= x_fact*i;
}
x_minus_y = (x*1)-(y*1);
x_minus_y_fact=1;
for(i=1; i<=x_minus_y; i++) {
x_minus_y_fact= x_minus_y_fact*i;
}
var answer = (x_fact*1)/(x_minus_y_fact*1);
alert(bra_data[i-1]);
非常感谢您的快速评论。你救了我的夜晚。