Node.js数组实例化

时间:2016-01-22 04:54:36

标签: javascript arrays node.js

所以,我已经尝试了一段时间而且没有运气。目前我有一个基于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(不得不削减,上传太多了)

1 个答案:

答案 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;
&#13;
&#13;