我有:
const chars = 'abcdefghijklmnopqrstuvwxyz';
我想创建一个包含
[aa,ab,ac .. zz ]
我可以用循环来做,但想尝试使用map。我试探着:
const baseStrings = [chars].map(x=>chars[x]).map(y=>y+chars[y]); console.log(baseStrings);
这给出:
[NaN]
我做错了什么?
uqcuzwp81#
您可以使用[...string]代替String。split:
[...string]
console.log([...'abcdefghijklmnopqrstuvwxyz'] .flatMap((i,_,a)=>a.map(j=>i+j)))
ocebsuys2#
spread-operator
Array#flatMap
Array#map
const chars = 'abcdefghijklmnopqrstuvwxyz'; const list = [...chars]; const baseStrings = list.flatMap(c1 => list.map(c2 => `${c1}${c2}`)); console.log(baseStrings);
mnowg1ta3#
必须使用split
split
const chars = 'abcdefghijklmnopqrstuvwxyz'; const array = chars.split('') console.log(array)
然后flatMap
flatMap
const chars = 'abcdefghijklmnopqrstuvwxyz'; const array = chars.split('') const result = array.flatMap(c1 => array.map(c2 => c1 + c2)) console.log(result)
3条答案
按热度按时间uqcuzwp81#
您可以使用
[...string]
代替String。split:ocebsuys2#
spread-operator
获取字符列表Array#flatMap
迭代此列表。在每次迭代中,使用Array#map
返回当前字符的组合列表mnowg1ta3#
必须使用
split
然后
flatMap