实现长度为500的字母组合数组,如以下代码所示:
/**
* fromCharCode() 可接受一个指定的 Unicode 值,然后返回一个字符串,
* 该方法是 String 的静态方法,字符串中的每个字符都由单独的 Unicode 数字编码指定。
*/
// 此方法来自一位群友
const combin1 = () => {
const arr = []
for (let i = 0; i < 500; i++) {
/**
* Math.floor向下取整,在i不能被26整除之前,Math.floor(i / 26) 都是同一个值,
* String.fromCharCode(65) 是字母A,每遍历26次 Math.floor(i / 26) 会更新一个值
* 所以每遍历26次 String.fromCharCode(65 + Math.floor(i / 26)) 就会更新字母
*/
let first = String.fromCharCode(65 + Math.floor(i / 26));
// i % 26 每一次取模运算都会得到为 i 的值,所以每遍历26次字母表 String.fromCharCode(65 + i % 26) 循环一次
let second = String.fromCharCode(65 + i % 26)
// 每遍历一次都会有 AA、AB...BB、BC...被push进数组
arr.push(first + second)
}
return arr
}
/**
* 双层遍历的方式就比较好理解了
*/
const combin2 = () => {
const arr = []
const list = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split('');
list.forEach(i => list.forEach(j => arr.push(i + j)))
return arr.splice(0, 500)
}
结果如图所示: