在Javascript中使用文字符号将对象插入数组

在Javascript中使用文字符号将对象插入数组,javascript,Javascript,我正在解析具有已知重复结构的文档。有一个标题1行、一个子标题1行和一个未知行的内容区域。 文件中每个项目的格式如下所示: ========================= Head Text ========================= SubHead Text ========================= Content Text Line 1 Content Text Line 2 ... Content Text Line 8 我无法有效地遍

我正在解析具有已知重复结构的文档。有一个标题1行、一个子标题1行和一个未知行的内容区域。 文件中每个项目的格式如下所示:

========================= Head Text ========================= SubHead Text ========================= Content Text Line 1 Content Text Line 2 ... Content Text Line 8 我无法有效地遍历文档并将每个对象动态添加到数组中。我在第2节得到一个错误,告诉我页面为空或不是对象

 var count = 0;
 while( !stream.AtEndOfStream ){
 page[count] = stream.ReadLine();
 count++;
 }

var item = [{}];

var section = 0;

var i = 0, k = 0;
while (i < page.length) {
    if (~page[i].indexOf("=====")) {
        if(section == 0) {
            item[k].head = page[i+1];
            section++;
        } else      
        if (section == 1) {
            item[k].subHead1 = page[i+1];   
            section++;
            i++;
        } else
        if (section == 2) {
            var j = i+1;
            while(!~page[j].indexOf("=====")) {
                item[k].content += page[j] + "\n";
                j++;
            }   
                section = 0;
                k++;
        }       
    }
    i++;
}
更改此项:

var item = [{}]; 
if (~page[i].indexOf("=====")) {  
为此:

var item = []; 
if (~page[i].indexOf("=====")) { 
    item[k] = {};
接下来,更改此选项:

var item = [{}]; 
if (~page[i].indexOf("=====")) {  
为此:

var item = []; 
if (~page[i].indexOf("=====")) { 
    item[k] = {};

我不确定这是否有效,但基本思想是创建一个空白数组var item=[];然后在需要时添加对象项[k]={}。以前您试图向未定义的对象添加属性。

页面为空,因为它至少在您的代码段中尚未声明。

页面未在代码示例中声明。抱歉,我应该添加该页面是字符串数组,ala page[0]=字符串;我应该把那部分代码包括进去。页面是一个简单的字符串数组…您可能会对页面的作用域有问题。尝试var page=[];在脚本的最顶端,查看其作用域是否全局。