Tol*_*a E 8 javascript enums json node.js
我在JavaScript中使用这个方法枚举?在我们的代码中创建枚举..
所以
var types = {
"WHITE" : 0,
"BLACK" : 1
}
Run Code Online (Sandbox Code Playgroud)
现在问题是当我想在任何地方创建验证时,我必须这样做;
model.validate("typesColumn", [ types.WHITE, types.BLACK ]);
Run Code Online (Sandbox Code Playgroud)
现在有一种方法可以简单地将类型中的值转换为数组,这样我就不必列出枚举的所有值吗?
model.validate("typesColumn", types.ValuesInArray]);
Run Code Online (Sandbox Code Playgroud)
编辑:我创建了一个非常简单的枚举库来生成简单的枚举npm --save-dev install simple-enum(https://www.npmjs.com/package/simple-enum)
Ali*_*ani 16
简单的解决方案(ES6)
你可以Object.values像这样使用:
var valueArray = Object.values(types);
Run Code Online (Sandbox Code Playgroud)
Yan*_*ann 11
我会将地图转换为数组并将其存储为types.all.您可以创建一个自动执行此操作的方法:
function makeEnum(enumObject){
var all = [];
for(var key in enumObject){
all.push(enumObject[key]);
}
enumObject.all = all;
}
Run Code Online (Sandbox Code Playgroud)
var types = {
"WHITE" : 0,
"BLACK" : 1
}
var typeArray = Object.keys(types).map(function(type) {
return types[type];
});
//typeArray [0,1]
model.validate("typesColumn", typeArray);
Run Code Online (Sandbox Code Playgroud)