2026-10-27 09:54:06
下面这个方法可以输出 [100, 9999] 区间的
function palindrome(start = 100, end = 9999) {
// 使用数组存储回文数
const palindromeNumber = [];
for (let i = start; i <= end; i++) {
let str = i.toString();
const radius = Math.floor(str.length / 2);
// 前半段数字
const firstHalf = str.substr(0, radius);
// 后半段数字
const secondHalf = str.substr(-radius);
// 前半段数字与逆序的后半段数字相等,则为一个回文数
// 如 12321: 12 21, 123321: 123 321
if (firstHalf === secondHalf.split('').reverse().join('')) {
palindromeNumber.push(i);
}
}
// 区间内所有回文数
console.log(palindromeNumber);
// 随机取 10 个, 使用 set 保证数字不重复
const randomSet = new Set();
let length = palindromeNumber.length;
while (1) {
//
if (randomSet.size >= 10) {
break;
}
const i = Math.floor(Math.random() * length);
randomSet.add(palindromeNumber[i]);
}
// 随机的 10 个回文数
console.log(Array.from(randomSet));
}
