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