javascript - 如何通过函数获取某个对象的键?

标签 javascript

我正在尝试创建多种语言的表单验证错误消息。 不幸的是,将“目标”参数传输到我的函数不起作用。也许 target 被解释为字符串?!

function formMessages(field, target) {
  var messages = {
    'de' : {
      'valueMissing': 'Bitte füllen Sie dieses Feld aus.',
      'typeMismatch': {
        'email': 'Bitte geben Sie eine E-Mail ein.',
        'url': 'Bitte geben Sie eine URL ein.'
      }
    }
  };

  // Don't work!
  // return messages.de.target;

  // This works! But it is not dynamic!
  // return messages.de.typeMismatch.email;
}

if (validity.typeMismatch) {
  // Email
  if (field.type === 'email') return formMessages(field, 'typeMismatch.email');
}

最佳答案

使用 eval 方法

return eval('messages.de.'+target);

关于javascript - 如何通过函数获取某个对象的键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49688524/

相关文章:

javascript - 定时文本交换?

javascript - ajax成功后如何在模态上显示隐藏按钮?

javascript - "goog.proto2.Message.set$Metadata"未定义错误

javascript - 在 React Native 的 TabNavigator 中再次按下时滚动到当前选项卡的顶部

javascript - 关于 Ember 资源与路由的混淆

javascript - Chart.js 更改标签字体颜色

javascript - Mapbox 在 mapDidLoad 上放大

javascript - 如何使用 ActionScript 通过增加对象的坐标来移动 Macromedia Flash MX 中的对象?

javascript - 使用 PHP 和 Jquery 进行实时电子邮件通知

javascript - QML - 导入的 JS 对象不可通知