调用父对象兄弟姐妹的子节点

时间:2017-12-06 13:56:17

标签: javascript json object javascript-objects

嗨,我正在尝试建立自己的Pokédex网站,但是我不太擅长数据库,SQL,PHP等等,我是用JavaScript,JSON风格做的。在这样做的过程中,我遇到了一个问题:我想将$('#sql').on ('click',function() {...});引用到gen1.gps.Route_1.Exits.South但我不知道如何。当然,我先搜索互联网一段时间,找到解决方案,但我在上下文中并不理解。

gen1.gps.Pallet_Town.Title

我希望能够调用var gen1 = { 'gps': { 'Route_1': { 'Title': 'Route 1', 'Exits': { 'North': 0, 'South': // pallet town link here }, }, 'Pallet_Town': { 'Title': 'Pallet Town', 'Exits': { 'North': /* route 1 here */, 'South': 0 } } } } 对象来获取gen1.gps.Route_1.Exits.South Title对象。 我还没调试过任何东西,所以我不知道我的错误是什么或将会是什么 我希望有人可以通过发布有用的答案来帮助我。

2 个答案:

答案 0 :(得分:0)

需要实现某种id系统。 MySQL会为你解决这个问题,但就像你说的那样,你不想学习新语言只是为了看到一些东西变得生动。

我在路由中添加了ID,然后编写了一个函数来按ID查找路由。代码的底部位(-exec)用于获取Object.size()对象中的路由总数。 (与gps相同)

array.length

答案 1 :(得分:0)

如果动态创建对象,可以节省大量工作,如下所示:

var gen1 = {
  gps: {}
};

function checkPlace(a) {
  if (!gen1.gps[a]) gen1.gps[a] = {};
  if (!gen1.gps[a].Title) gen1.gps[a].Title = a.split("_").join(" ");
  if (!gen1.gps[a].Exits) gen1.gps[a].Exits = {};
}

function connect(a, b, dir) {
  checkPlace(a);
  checkPlace(b);
  if (dir == "ns") {
    gen1.gps[a].Exits.South = gen1.gps[b];
    gen1.gps[b].Exits.North = gen1.gps[a];
  }
  if (dir == "we") {
    gen1.gps[a].Exits.East = gen1.gps[b];
    gen1.gps[b].Exits.West = gen1.gps[a];
  }
}

connect("Route_1", "Pallet_Town", "ns");

console.log(gen1.gps.Route_1.Exits.South.Title);
console.log(gen1.gps);