Javascript 将元素添加到记录数组中

Javascript 将元素添加到记录数组中,javascript,arrays,records,Javascript,Arrays,Records,对不起,我是JS的新手。我已经找到了对的引用。推动将元素添加到数组中,并使用“函数”定义对象的结构,但我希望代码尽可能简单,便于教学 这是我的密码: “严格使用”; 变量ListItem={ 字段1:“”, 字段2:0 }; 变量数据列表=[{ 字段1:“”, 字段2:0 }]; 对于(变量x=0;x

对不起,我是JS的新手。我已经找到了对的引用。推动将元素添加到数组中,并使用“函数”定义对象的结构,但我希望代码尽可能简单,便于教学

这是我的密码:

“严格使用”;
变量ListItem={
字段1:“”,
字段2:0
};
变量数据列表=[{
字段1:“”,
字段2:0
}];
对于(变量x=0;x<3;x++){
DataList.push(ListItem)
数据列表[x]。字段1=提示(“项”+x+“输入f1数据:”);
数据列表[x]。字段2=提示(“项”+x+“输入f2数据:”);
}
对于(x=0;x<3;x++){
document.write(x+):“+DataList[x].field1+”和“+DataList[x].field2+”
”;
}
顶部的这两个声明似乎没有什么作用,您不必用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/>");
}
“严格使用”;
var dataList=[];
对于(var x=0;x
const dataList=[];
对于(变量i=0;i<3;i++)
数据列表[i]={
字段1:提示(“字段1,共“+i”),
字段2:提示(“字段2/i”)
};
一些注意事项:

1) Javascript是动态的,这是它最酷的地方。不要试图“初始化”一个数组,只要把它当作无限数组来使用就行了

2) 除构造函数外,所有标识符都以小写开头

3) 删除你的代码!这意味着尽可能添加空白

PS:要打印列表:

document.body.innerHTML = dataList.map( el => `${el.field1} and ${el.field2}`).join("<br>");
document.body.innerHTML=dataList.map(el=>`${el.field1}和${el.field2}`)。join(“
”);
或者使用旧样式的for循环:

for(const el of dataList)
  document.body.innerHTML += el.field1 + " and " + el.field2 + "<br>";
for(数据列表常量)
document.body.innerHTML+=el.field1+”和“+el.field2+”
”;
PS正如我定义的“ListItem”一样,我真的很想创建这种类型记录的数组,使用类似于:var DataList=[ListItem];我尝试将DataList定义为:var DataList=[];然后使用:DataList[x]=ListItem添加新元素;这肯定比我想象的要简单!谢谢,谢谢xs0。很好的解决了我的问题。顺便说一句,这些最初的声明只是我试图找到一个有效的解决方案!我能问一下,要达到同样的目的,哪种方式不那么可怕呢?我可能用了一个过于强硬的词。如果你只是把事情弄清楚,那就没事了。但是,如果您想向其他人显示类似的内容,这将是非常糟糕的用户体验-提示否则会阻止页面,等等。。例如,更“合适”的解决方案是有两个
字段和一个按钮。。我真的很喜欢React这样的东西,签出React To Do列表教程,其中有很多教程(他们做的事情与上面的代码非常相似-向列表添加内容…)谢谢xs0我理解。这不是我在网页上创建界面的方式!这是为了向小学生介绍程序编程。我正考虑在这门入门课程中使用JavaScript。早期引入HCI元素会干扰学生掌握基本编程结构的能力,我发现最好保持简单!
for(const el of dataList)
  document.body.innerHTML += el.field1 + " and " + el.field2 + "<br>";