javascript - json 中的 .push() 导致替换而不是将数组添加到我的 json 变量
问题描述
我正在尝试将不同的元素添加到 json 数组中,每个元素都由许多用户输入的变量组成
var Items = {
id: `${ID}`,
datestart: `${datestart}`,
dateend: `${dateend}`,
timestart: `${timestart}`,
timeend: `${timeend}`,
recurrences: `${userchoice}`,
daily: `${daily}`
};
此元素存储在由定义的数组中
var array = [];
但是当我尝试在数组中添加元素时,它只添加一次,然后更新用户插入的任何不同数据
array.push(Items);
当我使用 .push() 函数时,它只会继续用数组中已经存在的元素替换新元素。我很确定有一个简单的解决方案,但我无法看透它。
编辑:我使用的整个代码如下:
var array=[];
var ID=document.getElementById("id");
// the same for the rest of the variables
var Items = {
id: `${ID}`,
datestart: `${datestart}`,
dateend: `${dateend}`,
timestart: `${timestart}`,
timeend: `${timeend}`,
recurrences: `${userchoice}`,
daily: `${daily}`
};
// then i am directly adding the items to the array
array.push(Items);
// then i am displaying the result
var jsonstring = JSON.stringify(array);
console.log(jsonstring);
解决方案
谢谢你们帮助我,正如 ray hatfield 所说,我在与 .push 函数相同的 js 文件中声明了我的数组。
这样做的正确方法是:
主.js
var array=[];
添加到json.js
var ID=document.getElementById("id");
// the same for the rest of the variables
var Items = {
id: `${ID}`,
datestart: `${datestart}`,
dateend: `${dateend}`,
timestart: `${timestart}`,
timeend: `${timeend}`,
recurrences: `${userchoice}`,
daily: `${daily}`
};
// then i am directly adding the items to the array
array.push(Items);
// then i am displaying the result
var jsonstring = JSON.stringify(array);
console.log(jsonstring);
推荐阅读
- python - 实现无约束优化问题的回溯线搜索算法
- microsoft-graph-api - Graph API Findmeetingtimes 如果参加者人数超过 20 则不返回结果
- aframe - A-frame:如何在桌面上重放 3DoF 控制器?
- delphi - Delphi如何搜索类型记录数组的索引
- java - 在循环中比较 ArrayList 的元素会产生意想不到的结果?
- ionic-framework - Ionic 2 更改选项卡上的状态栏颜色
- c# - SSIS-将所有 SQL 任务中的脚本导出到一个文件
- javascript - 选择下一行后需要去掉行高亮
- asp.net - 无法在 ASP.Net 中使用 Godaddy API 更新域详细信息
- ios - 添加按钮不要在 tableView 上添加新行