javascript - 如何简化创建一个对象数组,其中除了一个所有属性都相同?

标签 javascript ecmascript-6

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`
  }
];

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

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

最佳答案

这摆脱了重复,使用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);

关于javascript - 如何简化创建一个对象数组,其中除了一个所有属性都相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54588455/

相关文章:

javascript - 如何使用 dojo 在查询字符串的 URL 中传递参数?

javascript - 这个 TypeScript 构造函数是如何工作的?默认对象?

javascript - 纯 JS 或 Lodash - 用其他对象的值替换对象值

javascript - 不建议在 ES6 中使用 "use strict"?

javascript - spread 元素在这里起什么作用

javascript - 谷歌分析嵌入 api 取消授权

javascript - Array.push() 仅针对对象的特定索引?

javascript - 通过 If 语句不起作用隐藏下一个可见的 sibling

javascript - 使 webpack 库输出与 babel 6 兼容

javascript - 函数调用完成后应执行以下代码