Javascript 获取数组的平均数,若其中一个在JS上为-1,则中断
我正在解决一些在大学里遇到的问题,但我不能解决这个问题。 这个练习是这样的: 创建一个程序,用户在其中输入数字直到输入“-1”,在这种情况下,程序将中断并打印输入的数字的平均值 这是我在JS上写的Javascript 获取数组的平均数,若其中一个在JS上为-1,则中断,javascript,arrays,algorithm,for-loop,break,Javascript,Arrays,Algorithm,For Loop,Break,我正在解决一些在大学里遇到的问题,但我不能解决这个问题。 这个练习是这样的: 创建一个程序,用户在其中输入数字直到输入“-1”,在这种情况下,程序将中断并打印输入的数字的平均值 这是我在JS上写的 array=[]; for( var i =0; i<3; i++){ val = parseInt(prompt( "Insert your numbers: ")); array.push(val) } function insert
array=[];
for( var i =0; i<3; i++){
val = parseInt(prompt( "Insert your numbers: "));
array.push(val)
}
function insert (array){
var sum = 0;
array.forEach(num=>{
sum+= (num) / array.length;
})
return sum
}
console.log( "Average is " + Math.round(insert(array)))
但它只是破坏了一切。我知道也许有一个更简单的方法来解决这个问题,也许我还在用循环的逻辑来挣扎。问题是,如果用户插入-1,promps必须停止循环
提前谢谢 这个怎么样:
array = [];
while((val = parseInt(prompt( "Insert your numbers: ")))!=-1)
{
array.push(val)
}
function avg (array){
var sum = 0;
array.forEach(num=>{
sum += num;
})
return array.length ? sum / array.length : 0;
}
console.log( "Average is " + Math.round(avg(array)))
这个怎么样:
array = [];
while((val = parseInt(prompt( "Insert your numbers: ")))!=-1)
{
array.push(val)
}
function avg (array){
var sum = 0;
array.forEach(num=>{
sum += num;
})
return array.length ? sum / array.length : 0;
}
console.log( "Average is " + Math.round(avg(array)))
let number=[];
让val、sum、result
askForInput();
函数askForInput(){
val=parseInt(提示(“请输入一个数字:”);
如果(val==(-1)){
结果=getAverage(数字);
console.log(“结果为:”+Result);
}否则{
askForInput();
}
}
函数getAverage(数组){
如果(array.length==0)返回0;
for(设i=0;i
使用递归的示例让数字=[];
让val、sum、result
askForInput();
函数askForInput(){
val=parseInt(提示(“请输入一个数字:”);
如果(val==(-1)){
结果=getAverage(数字);
console.log(“结果为:”+Result);
}否则{
askForInput();
}
}
函数getAverage(数组){
如果(array.length==0)返回0;
for(设i=0;i
使用递归的示例我将for循环更改为while,这样,只有当用户输入-1时,循环才会终止(按照您当前编写的方式,for循环将在用户输入3个数字后终止)。如果在while循环之前初始化一个变量,该变量将更改为等于用户输入,那么您甚至可以处理循环定义中的逻辑 例:
此代码将持续提示用户,直到他们输入-1,此时while循环将停止。我会将for循环更改为while,以便仅当用户输入-1时循环才会终止(按照您当前编写的方式,for循环将在用户输入3个数字后终止)。如果在while循环之前初始化一个变量,该变量将更改为等于用户输入,那么您甚至可以处理循环定义中的逻辑 例:
此代码应持续提示用户,直到他们输入-1,此时while循环将停止。方法看起来正确,但没有
中断
关键字。是的,在val=parseInt
谢谢@SunilChaudhary之后,你必须在循环中使用它,它解决了这个问题,[break]写得很好,我只是把它放在循环之外。我得改进一下逻辑,哈哈。非常感谢:)方法看起来是正确的,但是没有中断
关键字。是的,在val=parseInt
谢谢@SunilChaudhary之后,你必须在循环中使用它,它解决了这个问题,[break]写得很好,我只是把它放在循环之外。我得改进一下逻辑,哈哈。真的谢谢:)谢谢@rorychatt,我是Js的新生,你的代码让我开始学习递归。非常有帮助!谢谢@rorychatt,我是Js的新生,你的代码让我开始学习递归。非常有帮助!问题是,在用户写入-1之前,它一直在循环。它应该在某个点停止以返回以前输入的平均数。无论如何,谢谢你,我还没有计算过我能用多少呢。@Juliet,这就是我的想法,不是吗?用户可以通过键入“-1”随时停止。问题是,在用户写入-1之前,它会一直循环。它应该在某个点停止以返回以前输入的平均数。无论如何,谢谢你,我还没有计算过我能用多少呢。@Juliet,这就是我的想法,不是吗?用户可以通过键入“-1”随时停止。
let numbers = [];
let val, sum, result
askForInput();
function askForInput(){
val = parseInt(prompt("Pls enter a number: "));
if(val == (-1)){
result = getAverage(numbers);
console.log("Result is: " + result);
} else {
askForInput();
}
}
function getAverage(array){
if(array.length == 0) return 0;
for(let i = 0; i < array.length; i++){
sum += array[i];
}
return sum / array.length;
}
array = [];
user_input = 0;
while (user_input != -1 ) {
user_input = parseInt(prompt( "Insert a number: "));
array.push(user_input)
}