将枚举转换为值数组(将所有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?