javascript - 有没有办法将数据存储到 json 数组中,而无需删除 javascript 中 json 数组中先前存储的数据?
问题描述
我正在尝试实现一种从输入框中获取数据并将数据发送到 json 数组的方法,我实现了它,但是在推送新数据时,数组中的先前数据被删除了。我希望所有数据都存储在 json 数组中。如何在 javascript 或 jquery 中实现这一点。以下是我尝试过的。
<script>
$(document).ready(() => {
$('#submit').click(() => {
var objKey = 0;
var person = [];
var name = $('#name').val();
var age = $('#age').val();
var address = $('#address').val();
objKey++;
var obj = {
'id': objKey,
'name': name,
'age': age,
'address': address
}
var hasMatch = false;
if (name === '' || age === '' || address === '') {
alert('Fields should not be null');
return false;
} else {
var index = 0;
if (index < person.length) {
++index
var animal = person[index];
if (animal.name == obj.name) {
hasMatch = true;
alert('oops');
return false;
} else {
person.push(obj);
buildTable(person)
console.log(person);
return false
}
} else {
person.push(obj);
buildTable(person)
console.log(person);
person += person
return false
}
}
});
function buildTable(data) {
var table = document.getElementById('myTable')
for (var i = 0; i < data.length; i++) {
var row =
`<tr class="record">
<td>${data[i].id}</td>
<td>${data[i].name}</td>
<td>${data[i].age}</td>
<td>${data[i].address}</td>
<td><input type="button" title="Click to remove item" value="delete" /></td>
</tr>`
table.innerHTML += row`enter code here`
}
}
})
</script>
解决方案
问题是您在每次点击时都会创建一个新数组。将person
变量移到点击处理程序之外:
$(document).ready(() => {
var person = []; // <==============
$('#submit').click(() => {
var objKey = 0;
如果你这样做,那么就会有一个数组,person.push
并将添加到该数组中。
推荐阅读
- sql-server - SQL Pivot 创建 NULL 而不是在 DateTime 值上合并
- jsf - 获取数据表列表
- reactjs - React Router - 使用组件参数并将道具传递给渲染的组件?
- php - 如何在特定页面上显示 wordpress 用户地址?
- python-3.x - 只发现积极因素
- swiftui - 我无法使用按钮关闭 Modal 并从 NavigationBar 再次打开它
- python - 当两个数据帧具有不同数量的条目(值匹配但索引不匹配)时,如何使用 DataFrame.isin?
- javascript - 将 JSInterop 的 ExampleJsInterop JavaScript 代码转换为 TypeScript
- java - 未触发 LinearLayout 中的 OnClickListener
- clearcase - 列出 Clearcase 中特定文件/目录的所有分支