连chatGPT也不会的翻转带表情的字符串

612 阅读1分钟

正在上班(摸鱼)的时候,突然主管给我出了道题,让我翻转一个带表情的字符串:"疯狂星期四,v我50🙂🙃"。

哼哼,这种翻转字符串的问题也太初级了吧,根本懒得想,直接丢给GPT。

很快啊,chatGPT给了我答案:

image.png

这个方法的实现是先通过 split 方法将字符串转换为字符数组,然后使用 reverse 方法将数组元素翻转,最后使用 join 方法将字符数组转换回字符串。

我直接一个复制粘贴发给主管,然后正准备接着摸鱼,但他马上阴恻恻的笑出声:你运行一下看看,到底有没有翻转。 结果我一运行,结果是

image.png

咦,咋不对捏?哪来的乱码呀?

源赖氏佐田,哦不对,原来是这俩表情字符埋的坑,每一个emoji表情背后都是一串emoji编码,如果用split直接转换为字符数组,会把emoji表情编码分开,打印出无法解析的字符。

既然知道问题了,那自然难不倒我这种摸鱼怪:

console.log([...a].reverse().join(''));

我们把字符串a解构出来,然后以解构的字符为单位进行翻转,再组合起来,这样就把emoji表情当做一个单位而不是分开的字符,运行一下看看:

image.png

嘻嘻,完美解决!

把答案发给主管,主管很高兴,拍着我肩膀说:小伙子很不错啊,很有悟性,那今天星期四...

什么星期四,根本不知道,立马戴上耳机继续摸鱼咯~~