我正在尝试使用map函数来转换属性类型。
class A {... }
class B {... }
var var1 = [{path:"aa",comp:"A"},{path:"b",comp:"B"}];
var var2 = var1.map(function(obj){
var rObj = {path: obj.path, component: A};
return rObj;
});
上面的代码将返回到var2
[{path:"aa",comp:A},{path:"b",comp:A}]
我需要的是
[{path:"aa",comp:A},{path:"b",comp:B}]
我如何达到这个目的?
答案 0 :(得分:3)
您正在尝试在类名(作为字符串)和实际类之间进行映射 你可以像这样维护一个映射对象:
class A { ... }
class B { ... }
var nameToClassMapping = {
A: A,
B: B
};
var var1 = [{ path: "aa", comp: "A" }, { path: "b", comp: "B" }];
var var2 = var1.map(function(obj) {
var rObj = { path: obj.path, component: nameToClassMapping[obj.comp] };
return rObj;
});