所以,我已经尝试了一段时间而且没有运气。目前我有一个基于PSN配置文件数据的关联数组:
var PROFILE = {};
PROFILE.profileData = {};
PROFILE.titles = {};
并在代码中进一步使用:
PROFILE.profileData.onlineId = profileData.onlineId;
PROFILE.profileData.region = profileData.region;
PROFILE.titles[title.npCommunicationId] = title; //For looped, can be many
PROFILE.titles[title.npCommunicationId].trophies = {};
PROFILE.titles[title.npCommunicationId].trophies = trophyData.trophies; //any where from 10 - 50+ of these, for looped
问题是,如果我想拥有多个配置文件,这不会起作用,因为它只是将它们插入到同一个配置文件中。我需要'简介'是一个在每个索引处都包含所有上述元素的数组。
PROFILEarray[n].profileData = {};
PROFILEarray[n].profileData.onlineId = profileData.onlineId;
PROFILEarray[n].profileData.region = profileData.region;
这就是我需要的东西^
但是对于上面我得到了这个错误
Cannot read property 'profileData' of undefined
一旦完成,它将以JSON格式保存到文件中,然后由我编写的用于插入数据库的PHP代码使用。
这是json输出的一小部分:http://textuploader.com/5zpbk(不得不削减,上传太多了)
答案 0 :(得分:1)
在这种情况下,您必须将
的值PROFILEarray[n]
定义为object
。 JavaScript对象是命名值的容器。您无法设置undefined
PROFILEarray[n]
为undefined
。将其初始化为{}(object)
试试这个:
var PROFILEarray = [];
for (var n = 0; n < 5; n++) {
PROFILEarray[n] = {};
PROFILEarray[n].profileData = {};
PROFILEarray[n].profileData.onlineId = n;
PROFILEarray[n].profileData.region = 'Region' + n;
}
alert(JSON.stringify(PROFILEarray));
&#13;