数据格式化,纯整数转成相应的 数字+“万”
- 小于1万的直接输出,例如:1234 -> 1234
- 超过1万的显示x.x万,小数点至多保留1位,例如:12345 -> 1.2万,123456 -> 12.3万
- 不允许出现1.0万情况,例如:10123 -> 1万,而不是1.0万
参考答案
// tianbo
function f(num) {
const lessNum = num/10000
if (lessNum >= 1) {
if (parseInt(lessNum) == lessNum.toFixed(1)) {
num = parseInt(lessNum) + '万'
} else {
num = (lessNum).toFixed(1) + '万'
}
}
return num
}
// xiaoxing
function f(num) {
const lessNum = parseInt(num/1000)
if (lessNum >= 10) {
num = lessNum/10 + '万'
}
return num
}
// liping
function f(num) {
let newNum
if(num < 10000) {
newNum = num
} else {
newNum = parseFloat((num/10000).toFixed(1)) + '万'
}
return newNum
}
// dongmei
function f(num) {
if(num < 10000) {
return num
} else {
return (Math.round(num/10000 *10)/10) + '万'
}
}
// gege
function f(num) {
if(num < 10000) {
return num
} else if (num >= 10000) {
// return parseFloat(num/10000, 1) + '万'
// return Math.floor(num/10000, 1) + '万'
return Math.round(num/10000, 1) + '万'
}
}
替换数组中的省略元素为 undefined,比如[1, ,3] -> [1, undefined, 3]
参考答案
const arr = [1, ,3]
// kangkang
arr.toString().replace(/,,/g, ',undefined,').split()
for(let i = 0, len = arr.length - 1; i < len; i++) {
if (typeof arr[i] == 'undefined') {
arr[i] = undefined
}
}
Array.apply(null, arr)
// liping
for(let i=0; i < arr.length; i++) {
if(arr[i] === undefined) {
arr[i] = undefined
}
}
// gege
for(let i = 0; i < arr.length; i++) {
if(arr[i] === '' || array[i] === undefined) {
arr[i] = undefined
}
}
// xiaoxing
Array.apply(null, arr)
求一个正整数的素数
参考答案
// 筛选法
function prime(N) {
N += 1
let i, j
const temp=[]
const p = []
for(i=2; i<N; i++) {
if (i%2) {
temp[i] = true
} else {
temp[i] = false
}
}
for(i=3; i<=Math.ceil(Math.sqrt(N)); i++) {
if (temp[i]) {
for(j=i+i; j<N; j+=i) {
temp[j] = false
}
}
}
p.push(2)
for(i=2; i<N; i++) {
if (temp[i]) {
p.push(i)
}
}
return p.join()
}
求一个正整数的因子个数
设n=p1^k1*p2^k2*……*pn^kn,其中p1,p2,……,pn为互不相同的质数,k1,k2,……,kn为正整数,则n所有正因数个数为(k1+1)(k2+1)*……*(kn+1)个
参考答案
const N = 1000
const p = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1021]
let i=0, j, newn
const temp = []
function total() {
let sum = 1
for(let i in temp) {
sum *= (temp[i]+1)
}
return sum
}
function fm(N) {
j = 0
while(N % p[i] == 0) {
j++
N /= p[i]
}
if (j != 0) {
temp.push(j)
}
return N
}
function f(N) {
newn = fm(N)
if (newn == 1) {
return total()
}
if (newn == N) {
i++
}
return f(newn)
}
对一个所含数据项为 N 的可分页列表,求一个合适的分页大小 m,使得最后一页所含数据不小于5项
参考答案
let m = 10
let lastPageNo = parseInt(N / m) + (N % m === 0 ? 0 : 1)
if (N > 10 && N % 10 < 5 && N % 10 > 0) {
for (let j = 11; j < 50; j++) {
if (N % j >= 5) {
m = j
break
}
}
lastPageNo = parseInt(N / m) + 1
}
更新于[2026-01-23]