[英]JavaScript constructors using JavaScript object literal notation
[英]Insert an Object into an Array using Literal Notation in Javascript
我正在解析具有已知重复结构的文档。 有一个标题(1行),一个子标题(1行)和一个内容区域(行数未知)。 文档中每个项目的格式如下所示:
========================= Head Text ========================= SubHead Text ========================= Content Text Line 1 Content Text Line 2 ... Content Text Line 8
我想创建一个包含每个部分的对象的数组。 就像是:
var item = [];
items[0] = {
head: "head1 text",
subHead: "subHead1 text",
content: "content1 text"};
items[1] = {
head: "head2 text",
subHead: "subHead2 text",
content: "content2 text"};
我在高效遍历文档并将每个对象动态添加到数组中时遇到麻烦。 我在第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 = [{}];
对此:
var item = [];
接下来,更改此:
if (~page[i].indexOf("=====")) {
对此:
if (~page[i].indexOf("=====")) {
item[k] = {};
我不确定这是否行得通,但是基本思想是创建一个空白数组(var item = [];),然后在需要时添加对象(item [k] = {})。 以前,您试图将属性添加到未定义的对象。
page
为null,因为至少在您的代码段中尚未声明它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.