javascript - 如何使用数组从对象数组中提取值
问题描述
密码验证失败的原因有很多:
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
以显示更连贯的错误消息。
解决方案
对于 中的每个值failures
,从 中提取相应的项目msg
。但是,我可以建议创建msg
为 dict 吗?
const msg = {
'min': 'minimum',
'max': 'maximum',
...
};
这将使执行此操作更容易。
failures.forEach((failure) => {
if (failure in msg) {
console.log(msg[failure]);
}
});
推荐阅读
- xamarin.forms - 跨页面的静态视图
- django - Django 调度任务
- excel - 如何在 Excel 中获取超链接的范围?
- java - 使用 java 创建 YouTube 事件而不提示从浏览器登录
- javascript - 无法更改字体颜色或使文本装饰无效
- linux - 如何从 vi 编辑器中删除 utf-8、unix
- java - 预期 BEGIN_OBJECT 但在 Retrofit2 中是 BEGIN_ARRAY
- javascript - 是什么导致我的代码不知道我想从本地存储中删除哪个值?
- sql - 具有多个语句的 SQL 案例查询
- node.js - “路径”参数必须是字符串类型或 Buffer 或 URL 的实例。收到一个对象实例