Массив forEach() и Reduce()
Что вы думаете, это лучший способ сделать?
Уменьшить путь:
const result = Object.keys(params).reduce(
(previous, key) => {
if (this.model.hasOwnProperty(key)) previous[key] = this.model[key](params[key]);
return previous;
}, {});
ForEach Way:
const result = {};
Object.keys(params).forEach(key => {
if (this.model.hasOwnProperty(key)) result[key] = this.model[key](params[key]);
});
Я использую Airbnb Eslint и мне не нравится способ сокращения, так как я изменяю previous
(Не-парам-Переприсвоить)
1 ответ
Решение
Я думаю reduce
намного лучше, потому что это не проливает перемены повсюду. Вы могли бы сделать это немного лучше, IMO.
var result = Object.keys(params).reduce((res,k)=>
this.model.hasOwnProperty(k)
? Object.assign(res, {[k]: this.model[k](params[k])})
: res, {});