首页 > 解决方案 > 如何简化创建一个对象数组,其中除了一个之外所有属性都相同?

问题描述

const errorMessage = "some error message";
const fieldName = "the field name";

const newFieldRules = [{
    custom: false,
    errorMessage: errorMessage,
    fieldName: fieldName,
    validatorName: `digits`
  },
  {
    custom: false,
    errorMessage: errorMessage,
    fieldName: fieldName,
    validatorName: `min`
  },
  {
    custom: false,
    errorMessage: errorMessage,
    fieldName: fieldName,
    validatorName: `max`
  }
];

我需要创建上面的数组。如您所见,所有对象中几乎没有相同的属性。

有没有办法改进这段代码以避免重复?

标签: javascriptecmascript-6

解决方案


这摆脱了重复,使用Array.prototype.map

const errorMessage = "some error message";
const fieldName = "the field name";

const newFieldRules = [`digits`, `min`, `max`].map(validatorName => ({
    custom: false,
    errorMessage,
    fieldName,
    validatorName
}));

console.log(newFieldRules);


推荐阅读