2016-01-22 72 views
0

所以,我一直在尝试一段时间,没有运气。目前,我有一个关联数组基于PSN的个人资料数据:Node.js数组实例化

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 

问题是,如果我想有多个配置文件,这不起作用,因为它只是将它们插入到相同的配置文件中。我需要'PROFILE'作为一个数组,在每个索引处具有上述所有元素。

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(不得不削减,也有点上传)

+1

是否定义'PROFILEarray [N] = {}'? –

+0

尝试使用此var PROFILE = []; –

+1

我们需要查看导致该错误的阵列所尝试的代码的整个序列。在尝试使用它之前,可能只是没有适当地初始化结构的一个元素,但是只有当我们看到您在发生错误时使用的实际代码时,我们才能知道这是什么。问题包括问题的详细说明以及您遇到问题的代码通常会在这里很快得到解答。没有人更难以回答。 – jfriend00

回答

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));