JavaScript简单编程(参考答案)

课后整理 2020-12-14

编写函数输出1~10000之间的所有对称数。

提示:对称数就是把一个数字倒着读和原数字相同的数字,如121、1331等。

参考:

function symmetry(num) {
    var arr = [];
        while(--num  > 10) {
            //依次把每个值劈开为多个数字组成的数组,然后颠倒顺序,再重新连接为一个数字字符串
            var reverseNum = num.toString().split('').reverse().join('');
            //比较颠倒后的值是否与原值相等,如果相等则存储到临时数组中
            (reverseNum == num) &&  (arr.push(num));
        }
    return arr;
}
var result =  symmetry(10000);
console.log(result);

实现乱序函数randomSort(array),能够将数组元素打乱存储,如[1,2,3,4,5],输出为[3,2,4,5,1]。要求N次以内数组元素顺序不重复。

参考:

function  randomSort(array) { 
    var n = array.length, t, i;
    while (n) {
        i  = Math.random() * n-- | 0;//获取数组长度内一个随机数
        t = array[n];                //依次取出数组元素的值
        array[n]  = array[i];     //与数组随机位置的元素值进行互换
        array[i] = t;
    }
    return array;
}

实现随机选取10~100之间的10个数字,存入一个数组,并排序。

参考:

var iArray = []; 
function  getRandom(istart, iend){//随机选取函数
    var iChoice = istart - iend +1;
    return Math.floor(Math.random() * iChoice )  + istart;
}
for(var i=0; i<10;  i++){//调用随机选取函数获取10个随机值,然后存入一个数组中
    iArray.push(getRandom(10,100));
}
iArray.sort();//数组排序

分别用while语句和for语句编写1+2+··+100的求和程序?

参考:

//while
var sum = 0, i = 1;
while(i <= 100){ 
    sum += i++;     //等价于 sum = sum + i; i = i +1;
}
document.write('1+2+3+...+100='  + sum); //5050
//for
var sum = 0;
for(i = 1; i <= 100;  i++){
    sum += i;
}
document.write('1+2+3+...+100='  + sum); //5050