0

スペースで区切られた数字を含む文字列の入力をユーザーに促し、最小値、最大値、および合計を警告するスクリプトを作成しようとしています。

これが私がこれまでに持っているものです:

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

3 に答える 3

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);

==> jsfiddle

編集:


有効な入力のみが与えられているかどうかわからない場合は、Math.minandを使用する代わりに手動で配列をチェックする必要がありますMath.maxNaN

于 2012-10-16T02:14:39.410 に答える
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/

于 2012-10-16T02:25:31.440 に答える
1
var input = prompt("Enter a string containing numbers separated by spaces");​
var ary = input.split(" ");

これにより、入力が配列にロードされますary。ただし、それ以上の処理を行う前に、空白を削除し、適切な入力を確認する必要があります。

于 2012-10-16T02:13:17.087 に答える