0

你认为最好的方法是什么?

减少方式:

const result = Object.keys(params).reduce(
      (previous, key) => {
        if (this.model.hasOwnProperty(key)) previous[key] = this.model[key](params[key]);
        return previous;
  }, {});

ForEach 方式:

const result = {};
Object.keys(params).forEach(key => {
      if (this.model.hasOwnProperty(key)) result[key] = this.model[key](params[key]);
    });

我正在使用 airbnb eslint,它不喜欢 reduce 方式,因为我修改了previous(no-param-reassign)

4

1 回答 1

2

我认为这reduce要好得多,因为它不会将变量溢出。你可以让它更好一点,imo。

var result = Object.keys(params).reduce((res,k)=>
  this.model.hasOwnProperty(k)
    ? Object.assign(res, {[k]: this.model[k](params[k])})
    : res, {});
于 2016-05-26T13:14:24.783 回答