编写函数输出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