将枚举转换为值数组(将所有JSON值放入数组中)

我用这种方法在JavaScript中枚举? 在我们的代码中创建枚举

所以

var types = {
  "WHITE" : 0,
  "BLACK" : 1
}

现在的问题是我想在任何地方创建验证,我必须这样做;

model.validate("typesColumn", [ types.WHITE, types.BLACK ]);

现在有什么办法可以简单地将类型中的值转换为数组,以便我不必列出枚举的所有值?

model.validate("typesColumn", types.ValuesInArray]);

编辑 :我创建了一个非常简单的枚举库来生成简单的枚举npm --save-dev install simple-enum (https://www.npmjs.com/package/simple-enum)


我会将地图转换为数组并将其存储为types.all 。 你可以创建一个自动执行的方法:

function makeEnum(enumObject){
   var all = [];
   for(var key in enumObject){
      all.push(enumObject[key]);
   }
   enumObject.all = all;
}

var types = {
  "WHITE" : 0,
  "BLACK" : 1
}
var typeArray = Object.keys(types).map(function(type) {
    return types[type];
});
//typeArray [0,1]

model.validate("typesColumn", typeArray);

jsFiddle演示


简单的解决方案(ES6)

你可以像这样使用Object.values

var valueArray = Object.values(types);

在线演示(小提琴)

链接地址: http://www.djcxy.com/p/91763.html

上一篇: Converting enums to array of values (Putting all JSON values in an array)

下一篇: Enums with jQuery?