首页 > 解决方案 > 如何使用数组从对象数组中提取值

问题描述

密码验证失败的原因有很多:

const failures = schema.validate(password.value, { list: true });
console.log(failues);
// => [ 'min', 'uppercase', 'digits' ]

我也有一个对象数组。key始终是failures数组的潜在值:

const msg = [
  { key: 'min', message: 'minimum' },
  { key: 'max', message: 'maximum' },
  { key: 'uppercase', message: 'need a uppercase' },
  { key: 'lowercase', message: 'need a lowercase' },
  { key: 'digits', message: 'must have digits' },
  { key: 'spaces', message: 'no spaces' },
  { key: 'oneOf', message: 'is not one of' },
];

我想映射failures数组并从中返回相关消息msg以显示更连贯的错误消息。

标签: javascriptarraysobjectecmascript-6

解决方案


对于 中的每个值failures,从 中提取相应的项目msg。但是,我可以建议创建msg为 dict 吗?

const msg = {
  'min': 'minimum',
  'max': 'maximum',
  ...
};

这将使执行此操作更容易。

failures.forEach((failure) => {
  if (failure in msg) {
    console.log(msg[failure]);
  }
});

推荐阅读