JS:将两个JSON对象合并为一个,但不制作数字索引
JS: Combine two JSON objects into one, but without making a numeric index
我有一个本地存储,JSON保存为字符串。我想将所有选定的JSON(通过选择)合并为一个新的JSON。我当前的代码是:
function combine() {
var combName = prompt("Please enter a group name", "Group1");
var sel = document.getElementById("listComb");
var endJson={};
for(var i=0;i<sel.options.length;i++) {
alert(sel.options[i].text);
$.extend(endJson, endJson, JSON.parse(localStorage.getItem(sel.options[i].text)));
}
// Write the new item to localStorage
localStorage.setItem(combName,JSON.stringify(endJson));
}
使用该代码,我得到一个元素,它看起来如下:
{
"0": {
"a": ""...
},
"1": {
"a": ""...
}
}
但我需要这样的格式:
[
{
"a": ""...
},
{
"a": ""...
}
]
有人知道怎么解决这个问题吗?
编辑:感谢您的解决方案,T.J.Crowder
这是我的新代码:
function combine() {
var combName = prompt("Please enter a group name", "Group1");
var sel = document.getElementById("listComb");
var combined = []; // <== Array
for(var i=0;i<sel.options.length;i++) {
combined[i] = JSON.parse(localStorage.getItem(sel.options[i].text)); // <== Add to it
}
// Write the new item to localStorage
localStorage.setItem(combName, JSON.stringify(combined));
}
创建一个数组,而不是一个普通对象,请参阅注释行:
function combine() {
var combName = prompt("Please enter a group name", "Group1");
var sel = document.getElementById("listComb");
var combined = []; // <== Array
for(var i=0;i<sel.options.length;i++) {
combined[i] = JSON.parse(localStorage.getItem(sel.options[i].text)); // <== Add to it
}
// Write the new item to localStorage
localStorage.setItem(combName, JSON.stringify(combined));
}
将endJson更改为数组
function combine() {
var combName = prompt("Please enter a group name", "Group1");
var sel = document.getElementById("listComb");
var endJson=[];
for(var i=0;i<sel.options.length;i++) {
alert(sel.options[i].text);
endJson.push(JSON.parse(localStorage.getItem(sel.options[i].text)));
}
// Write the new item to localStorage
localStorage.setItem(combName,JSON.stringify(endJson));
}
相关文章:
- 多维关联数组的最后一个索引
- 使用Handlebars获取同级JSON数据,其中单个对象没有父索引键,但多个项有一个索引键
- 如何移动到数组的上一个/下一个索引键
- JavaScript更新最后一个索引类数据
- 如何避免在将索引作为函数的参数发送时引用for循环中的最后一个索引
- 只滚动一个(z索引)层
- 使用 jQuery 创建动态元素 单击事件始终返回 for 循环中的最后一个索引
- 在Javascript中,有没有一种方法可以用一个语句创建一个索引对象数组
- 在 jQuery 中从某个索引循环访问列表到另一个索引
- 如何在一个索引不等于2的ul中获取li,我知道如何获得索引gt或lt 2
- 如何检查下一个索引是否存在 - LODASH
- 调用索引.php从另一个索引.php不同的目录
- 从一个索引.html页面重定向到 2 个网址
- 如何使用 Java 脚本中的最后一个索引删除子字符串
- 如何允许另一个索引字符串运行脚本
- 创建一个索引数组,该数组的索引值为 JavaScript 中最常见的数组值
- 循环的JQuery卡在最后一个索引处
- 在循环中,I'm附加了一个标记,提醒循环索引计数.为什么它总是提醒循环的最后一个索引
- 如何在$.each数组中查找下一个索引项
- 仅在最后一个索引处检查foreach中的if条件