【发布时间】:2019-08-05 19:26:23
【问题描述】:
我有这个函数应该运行每个验证器,然后返回包含错误的对象。
似乎一切正常,但数组中的第一个验证器。似乎reduce 完全忽略了它。无论我放什么验证器,它都会直接转到第二个。
我在这里遗漏了什么明显的东西吗?
export default values => (
[
validateFullName,
validateServicePresence,
validatePhoneField,
validateOrganizationName,
validateInn,
validateEmailField,
validateManagerEmail,
validateComment,
validateAgreement,
].reduce((currentErrors, validator) => {
const validationResult = validator(values);
return {
...currentErrors,
...validationResult,
};
})
);
【问题讨论】:
-
只需添加一个初始值,例如
.reduce((currentErrors, validator) => { const validationResult = validator(values); return { ...currentErrors, ...validationResult, }; }, {}) -
reduce将第一个元素作为默认(初始)累加器,除非您指定应该是什么累加器。
标签: javascript arrays reduce