将元素添加到记录数组
Add element to array of records
抱歉,我是 JS 新手。我找到了对 .push 的引用以将元素添加到数组并使用 'function' 来定义对象的结构,但我希望代码尽可能简单以便于教学!
这是我的代码:
"use strict";
var ListItem = {
field1: "",
field2: 0
};
var DataList = [{
field1: "",
field2: 0
}];
for (var x = 0; x < 3; x++) {
DataList.push(ListItem)
DataList[x].field1 = prompt("item " + x + " Enter f1 data:");
DataList[x].field2 = prompt("item " + x + " Enter f2 data:");
}
for (x = 0; x < 3; x++) {
document.write(x + ": " + DataList[x].field1 + " and " + DataList[x].field2 + "<br/>");
}
这只是我反复试验的最新版本。
我想创建一个结构化数据类型的数组,然后向其中动态添加元素。我已经尝试了第 7 行(DataList.push)的几种替代方法,例如 DataList[x] = ListItem;
抱歉,如果之前有人问过这个问题,但我找不到简单的解决方案!
顶部的那两个声明似乎没什么作用,您不必在 JavaScript 中预先声明您的字段。这应该可以解决问题:
"use strict";
var dataList = [];
for (var x=0;x<3;x++) {
dataList.push({}) // make new object
dataList[x].field1 = prompt("item " + x + " Enter f1 data:");
dataList[x].field2 = prompt("item " + x + " Enter f2 data:");
}
for (x=0;x<3;x++) {
document.write(x + ": " + dataList[x].field1 + " and " + dataList[x].field2 + "<br/>");
}
不过,应该提到的是,这是一件非常可怕的事情..
const dataList = [];
for(var i = 0; i < 3; i++)
dataList[i] = {
field1: prompt("field1 of " + i),
field2: prompt("field2 of " + i)
};
一些注意事项:
1) Javascript 是动态的,这就是它的妙处。不要尝试 "init" 一个数组,就好像它是无限的一样使用它。
2) 所有标识符都以小写开头,除了它们是构造函数。
3) 整理您的代码!这意味着尽可能添加空格。
PS:打印列表:
document.body.innerHTML = dataList.map( el => `${el.field1} and ${el.field2}`).join("<br>");
或使用旧式 for 循环:
for(const el of dataList)
document.body.innerHTML += el.field1 + " and " + el.field2 + "<br>";
抱歉,我是 JS 新手。我找到了对 .push 的引用以将元素添加到数组并使用 'function' 来定义对象的结构,但我希望代码尽可能简单以便于教学!
这是我的代码:
"use strict";
var ListItem = {
field1: "",
field2: 0
};
var DataList = [{
field1: "",
field2: 0
}];
for (var x = 0; x < 3; x++) {
DataList.push(ListItem)
DataList[x].field1 = prompt("item " + x + " Enter f1 data:");
DataList[x].field2 = prompt("item " + x + " Enter f2 data:");
}
for (x = 0; x < 3; x++) {
document.write(x + ": " + DataList[x].field1 + " and " + DataList[x].field2 + "<br/>");
}
这只是我反复试验的最新版本。
我想创建一个结构化数据类型的数组,然后向其中动态添加元素。我已经尝试了第 7 行(DataList.push)的几种替代方法,例如 DataList[x] = ListItem;
抱歉,如果之前有人问过这个问题,但我找不到简单的解决方案!
顶部的那两个声明似乎没什么作用,您不必在 JavaScript 中预先声明您的字段。这应该可以解决问题:
"use strict";
var dataList = [];
for (var x=0;x<3;x++) {
dataList.push({}) // make new object
dataList[x].field1 = prompt("item " + x + " Enter f1 data:");
dataList[x].field2 = prompt("item " + x + " Enter f2 data:");
}
for (x=0;x<3;x++) {
document.write(x + ": " + dataList[x].field1 + " and " + dataList[x].field2 + "<br/>");
}
不过,应该提到的是,这是一件非常可怕的事情..
const dataList = [];
for(var i = 0; i < 3; i++)
dataList[i] = {
field1: prompt("field1 of " + i),
field2: prompt("field2 of " + i)
};
一些注意事项:
1) Javascript 是动态的,这就是它的妙处。不要尝试 "init" 一个数组,就好像它是无限的一样使用它。
2) 所有标识符都以小写开头,除了它们是构造函数。
3) 整理您的代码!这意味着尽可能添加空格。
PS:打印列表:
document.body.innerHTML = dataList.map( el => `${el.field1} and ${el.field2}`).join("<br>");
或使用旧式 for 循环:
for(const el of dataList)
document.body.innerHTML += el.field1 + " and " + el.field2 + "<br>";