javascript - 在数组的开头添加一个对象
问题描述
我知道这很容易,但我无法完全理解。
function submitNewComment() {
var noo = 0; //array index
var userName = document.getElementById('user-name').value; //textbox
var commentBox = document.getElementById('main-comment').value; //textbox
var now = new Date();
mili = now.getTime(); //time in milisecond
var element = [];
element.push({
"no": noo, //array index
"username": userName,
"date": mili,
"body": commentBox,
"likes": "0",
"parent": null
});
console.log(element);
noo++;
console.log(noo);
}
简而言之,我需要添加创建一个变量作为包含对象的数组。当我运行该函数时,它并没有像我希望的那样工作。我错过了一些东西。
第二次运行该函数时存在问题。理想情况下,应该创建第二个对象,但更新第一个对象。因此,在第 2 次运行结束时以及之后的所有其他运行时,数组的长度保持为 1。
解决方案
你有几个问题。您需要有一种在页面加载后获取数据的方法。
- 您需要一个按钮或其他一些操作方法。
- 您对对象的创建感到困惑。如果它是用于创建对象的工厂函数,那么 'this.[label]' 是有效的,但如果您只是将表单数据作为对象推送到数组中,那么按照我在下面的建议进行操作。我所做的有意义吗?
- 我也没有在这里更改它,但是以毫秒为单位创建日期的最佳方法是 Date.now()。继续使用此方法,它将缩短和简化您的代码。
- 任何问题?
var element = [];
var btn = document.getElementById('btn');
btn.addEventListener('click', submitNewComment);
function submitNewComment() {
var userName = document.getElementById('user-name').value
var commentBox = document.getElementById('main-comment').value
var now = new Date();
var milliseconds = now.getTime();
element.unshift({
no: "test",
username: userName,
date: milliseconds,
body: commentBox,
likes: 0,
parent: null,
});
console.log(element);
}
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>misterhtmlcss</title>
</head>
<body>
<input type="text" name="user-name" id="user-name">
<input type="text" name="main-comment" id="main-comment">
<button id="btn">Submit</button>
<script src="index.js"></script>
</body>
</html>
更新。我意识到我将此声明留在了函数中,这意味着它不会保留根据您所说的内容您可能想要的连续提交。
推荐阅读
- sql - 从oracle中的日期列获取日期和时间
- android - 从屏幕上绘制图像但仍然从屏幕上获得点击事件
- mongodb - MongoDB | 使用数组进行图形查找
- php - 在 httpd 服务的 php 应用程序上启用 HTTPS
- php - PHP中的抽象方法和接口方法有什么区别?
- git - 在提交以保持历史干净之前,是否有必要将更改从 master 更改为分支
- angularjs - 为什么在 Angularjs 中使用组件?
- .net - 尝试删除已保存的 Excel 文件但收到 IOException:该进程无法访问该文件,因为它正被另一个进程使用
- java - 将图像上绘制的形状写入 PDF 文件时会反转
- python - 使用 Python 将文本文件中的空格转换为换行符