javascript - 将任何出现的对象名称替换为对象值

标签 javascript jquery

到目前为止,我已经用它替换了输入框中的文本(如果其中包含对象名称)和对象值:

var obj = {
    '1': 'fish',
    'q': 'apple',
    'z': 'banana',
};

$("#inputBoxID").on("keyup", function() {
    if(obj.hasOwnProperty($("#inputBoxID").val())) $(this).val(obj[$("#inputBoxID").val()]);
});

我想修改它,以便在任何出现对象名称时,它都会用值替换对象名称,这是我正在尝试执行的示例:

用户输入hello q我希望将其替换为:hello apple

我该如何去做呢?

最佳答案

您可以按空间分割, map 然后加入!

var obj = {    '1': 'fish',    'q': 'apple',    'e': 'banana'};

$("#inputBoxID").on("keyup", function() {
  var str = $("#inputBoxID").val().split(' ').map(function(word) {
    return obj[word] || word;    
  }).join(' ');
  $(this).val(str);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="inputBoxID">

关于javascript - 将任何出现的对象名称替换为对象值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49328097/

相关文章:

javascript - 我怎样才能在我的程序中实现一个字形图标并完成货币类型转换?

javascript - 在不干扰排序顺序的情况下连接/合并两个数组的最佳方法是什么?

jquery - CSS 顶部,左侧 block 鼠标悬停

javascript - Jquery 测试 url 是否已包含参数

javascript - 用于表单输入和清除状态的 mergeAttributes

javascript - JS面向对象: Access descendant's constructor from parent method

javascript - 从数组中的另一个对象更新数组中的对象

javascript - HTML 5 - 非常简单的动画

jquery - 当我点击链接时显示带有浪费垂直空间的 div

javascript - 如果连续单击某个元素两次,则隐藏 div,否则显示