正在上班(摸鱼)的时候,突然主管给我出了道题,让我翻转一个带表情的字符串:"疯狂星期四,v我50🙂🙃"。
哼哼,这种翻转字符串的问题也太初级了吧,根本懒得想,直接丢给GPT。
很快啊,chatGPT给了我答案:
这个方法的实现是先通过 split
方法将字符串转换为字符数组,然后使用 reverse
方法将数组元素翻转,最后使用 join
方法将字符数组转换回字符串。
我直接一个复制粘贴发给主管,然后正准备接着摸鱼,但他马上阴恻恻的笑出声:你运行一下看看,到底有没有翻转。 结果我一运行,结果是
咦,咋不对捏?哪来的乱码呀?
源赖氏佐田,哦不对,原来是这俩表情字符埋的坑,每一个emoji表情背后都是一串emoji编码,如果用split直接转换为字符数组,会把emoji表情编码分开,打印出无法解析的字符。
既然知道问题了,那自然难不倒我这种摸鱼怪:
console.log([...a].reverse().join(''));
我们把字符串a解构出来,然后以解构的字符为单位进行翻转,再组合起来,这样就把emoji表情当做一个单位而不是分开的字符,运行一下看看:
嘻嘻,完美解决!
把答案发给主管,主管很高兴,拍着我肩膀说:小伙子很不错啊,很有悟性,那今天星期四...
什么星期四,根本不知道,立马戴上耳机继续摸鱼咯~~