嗨,我正在尝试建立自己的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
对象。
我还没调试过任何东西,所以我不知道我的错误是什么或将会是什么
我希望有人可以通过发布有用的答案来帮助我。
答案 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);