使用JSON导出/导入ECMASCRIPT 6类



这都是使用ecmascript 6;假设我有一个班级

class Hero {
    constructor(id,name){
        this.id=id;
        this.name=name;
    }
}

我想创建一个类的对象数组:

var HEROES = [
  { "id": 11, "name": "Mr. Nice" },
  { "id": 12, "name": "Narco" },
  { "id": 13, "name": "Bombasto" },
  { "id": 14, "name": "Celeritas" },
  { "id": 15, "name": "Magneta" },
  { "id": 16, "name": "RubberMan" },
  { "id": 17, "name": "Dynama" },
  { "id": 18, "name": "Dr IQ" },
  { "id": 19, "name": "Magma" },
  { "id": 20, "name": "Tornado" }
];

除了手动解析数组,然后对每个元素执行NewHero()之外,还有什么方法可以做到这一点吗?如果能够做一些类似HEROES[] = hero.jsonExport()的事情,然后再做var = hero.jsonImport(HEROES[i]),那就太好了。我一直在四处寻找,但如果不使用Typescript,这似乎并不特别容易。我是不是错过了一些简单的东西?谢谢-Eric

想要从特定的数组实例导入似乎很奇怪,尤其是考虑到顺序可能会更改。可能最好导出一个工厂函数,该函数根据以下标准创建new Hero

class Hero {
    constructor(id,name){
        this.id=id;
        this.name=name;
    }
}
const HEROES = [
  { "id": 11, "name": "Mr. Nice" },
  { "id": 12, "name": "Narco" },
  { "id": 13, "name": "Bombasto" },
  { "id": 14, "name": "Celeritas" },
  { "id": 15, "name": "Magneta" },
  { "id": 16, "name": "RubberMan" },
  { "id": 17, "name": "Dynama" },
  { "id": 18, "name": "Dr IQ" },
  { "id": 19, "name": "Magma" },
  { "id": 20, "name": "Tornado" }
];
export default function createHero(index) {
    const hero = HEROES[index];
    return new Hero(hero.id,hero.name);
}

来电者:

import createHero from "./hero";
const hero1 = createHero(1);

最新更新