用 JavaScript 编程取一组随机数中的最大值

想要用 JavaScript 编程取一组随机数中的最大值,首先是最简单的:

var a =[];
var counter = 50;
for(var i=0;i<counter;i++)
{
a[i]
= Math.ceil(1000*Math.random());
}

for(var j=0;j<counter;j++)
{
if(a[0]<a[j])
    {
        tempNum
= a[0];
        a[
0] = a[j];
        a[j]
= tempNum;
    }
   
else
    {
        tempNum
= a[0];
    }   
}
var maxNum = tempNum;

console.log(
"the max number is: " + maxNum);

    在上面的代码中,第二个for循环的作用是把数组a中的数值进行过滤(筛选)。如果a[0]<a[j]的条件为true(真),就过滤进去,否则到else的{},这是在第一个下标(0)的数值大于它后面所有任意一个数值时处理的情况。

    下面我们利用 JavaScript 原生函数对数组元素进行顺序排列(sort()方法),然后将数组的最后一个元素pop()出来:

var a =[];
for(var i=0;i<20;i++)
{
a[i]
= Math.ceil(1000*Math.random());
}
console.log(a);
var sortArr
= a.sort();

var maxNum
= sortArr.pop();
console.log(
"the max number is: " + maxNum);

可以观察到: sort() 方法是从第一位(首位)开始比较的,而不是从个位开始。然后再比较第二位,再第三位,直到末位(最后一位)。这样的从小到大的排序后。pop()出数组最后一个数值。这样便是我们想要的结果了。但需要注意的是pop()方法是利用删除最后一位数组元素的方法,所以数组 a 的长度会-1。不信的话可以用a.length 查看一下。

上面示例代码中数组的sort()方法是对数组中的数进行了排序,下面是用冒泡排序算法来实现从小到大或从大到小的顺序排列了:

var a = [];
for(var i=0;i<20;i++)
{
a[i]
= Math.ceil(1000*Math.random());
}
var length = a.length;
for(var i=0;i<length-2;i++)
{
for(var j=length-1;j>=1;j--)
{
if(a[j]<a[j-1])
{
temp = a[j]; a[j] = a[j-1]; a[j-1] = temp;

}
}
}
console.log(a);
var maxNum
= a[a.length - 1];
console.log(maxNum);

posted on 2008-11-23 09:41  豆豆の爸爸  阅读(1178)  评论(2编辑  收藏  举报