提示用户输入字符串

时间:2012-10-16 01:58:50

标签: javascript

我正在尝试编写一个脚本,提示用户输入一个包含以空格分隔的数字的字符串,然后提醒最小值,最大值和总和。

这是我到目前为止所做的:

var prompt = (“Enter a string containing numbers separated by spaces”);

3 个答案:

答案 0 :(得分:2)

var input = prompt('Enter a string containing numbers separated by spaces').split(' ');
var min = Math.min.apply(Math, input);
var max = Math.max.apply(Math, input);
var sum = 0;
for(var i=0; i<input.length; i++){ 
    var n = parseFloat(input[i], 10); // depending on expected input
    sum += n ? n : 0;  // add if number
}

alert('min: '+min+'\nmax: '+max+'\nsum: '+sum);

==&GT; jsfiddle

修改


如果您不确定只提供有效输入,则必须手动检查数组,而不是使用Math.minMath.max,这可能会导致NaN

答案 1 :(得分:2)

// Some variables we'll be using​
var numbers = "", arr, min, max, sum = 0;

// Don't let them pass without valid input
while ( ! numbers.test(/^(\d+\s?)+$/) ) {
    numbers = prompt( "Enter some numbers, separated by spaces." );
}

// Determine min, max, and the sum
arr = numbers.split(" ");
​min = Math.min.apply(null, arr);
max = Math.max.apply(null, arr);

for ( var i = 0; i < arr.length; i++ ) {
    sum += (+arr[i]);
}

// Output results into console
console.log( min, max, sum );

小提琴:http://jsfiddle.net/GUcgj/

答案 2 :(得分:1)

var input = prompt("Enter a string containing numbers separated by spaces");​
var ary = input.split(" ");

这会将输入加载到数组ary中。但是,在进行任何进一步处理之前,您需要修剪任何空白区域并检查输入是否正确。