javascript - 如果找不到替换信,请保留原信

标签 javascript

我正在尝试将默认字体的消息转换为字体“vaporwave”,但是当它找到未定义的字母时,它返回未定义,我怎样才能让它跳过未定义的字母并保留原来的?

font = {
    "A": "A",
    "B": "B",
    "C": "C",
    "D": "D",
    "E": "E",
    "F": "F",
    [...]
}

const string = "hello world"
const vapour = string.split('').map(letter => {
  return font[letter];
}).join('');

//return for example, "undefined EL L O [...]"
//i want: "h EL L O [...]"


最佳答案

您可以将字体[字母]替换为原始字母:

const vapour = string.split('').map(letter => {
  return font[letter] || letter;
}).join('');

或者,我更喜欢从对象的键构造正则表达式:

const pattern = new RegExp('[' + Object.keys(font).join('') + ']', 'g');
const vapour = string.replace(pattern, char => font[char]);

关于javascript - 如果找不到替换信,请保留原信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69509794/

相关文章:

javascript - 这个功能可以更快吗? Javascript

javascript - Jquery 关闭 ('click' ) 开启 ('click' ) 绑定(bind)和取消绑定(bind)

javascript - 在 WordPress 中操作永久链接

javascript - Uncaught Error : DOM element provided is null or undefined in plotly JS

javascript - 使用 jQuery 将 div 滑入滑出

javascript - Angularjs 服务单元测试

javascript - 在给定恒定斜率和变化坐标的情况下查找两条线的交点

javascript - RemoveListener 移除所有在 'this' 监听器之后发起的监听器

javascript - jQuery .ajax 阻塞 .getJSON?

javascript - ES5构造函数中定义的私有(private)变量之谜