创建一个Bidimensional对象,并用javascript在json中打印它



我在用javascript(无jquery(创建对象数组2d时遇到一些问题

输出应该是这样的:

{"Switch":[{"name":"Switch 1","description":"Switch 1"},{"name":"Switch 2","description":"Switch 2"},{"name":"Switch 3","description":"Switch 3"},{"name":"Switch 4","description":"Switch 4"},{"name":"Switch 5","description":"Switch 5"},{"name":"Switch 6","description":"Switch 6"},{"name":"Switch 7","description":"Switch 7"}]}

我唯一能达到的目标是使用两个不同的数组,一个用于名称,另一个用于描述,这样做:

var swName = [];
var swDesc = [];
var i;
var namePrefix = "swtchname";
var descPrefix = "swtchdesc";
var count = document.querySelectorAll('[id^="swtchname"]').length; //if exist swtchname exist olso description
for(i=0;i<count;i++){
var name;
var desc;
name = document.getElementById(namePrefix + i).value;
desc = document.getElementById(descPrefix + i).value;
swName.push(name);
swDesc.push(desc);
}

我想创建一个二维的对象,并将所有数据放在里面。

我该如何更改?因为如果我创建这样一个对象,那么打印JSON格式应该很容易,对吧?

假设<input>元素的swtchname{x}swtchdesc{x}id,其中x是一个数字,请尝试以下操作:

var namePrefix = "swtchname";
var descPrefix = "swtchdesc";
var names = document.querySelectorAll('[id^="swtchname"]');
var X = {
Switch: []
};
names.forEach(function(i) {
var desc = document.getElementById(i.id.replace(namePrefix, descPrefix));
X.Switch.push({
name: i.value,
desc: (desc && desc.value) || ''
});
});
console.log(X);
<input id="swtchname1" value="name 1">
<input id="swtchdesc1" value="desc 1">
<input id="swtchname2" value="name 2">
<input id="swtchdesc2" value="desc 2">
<input id="swtchname3" value="name 3">
<input id="swtchdesc3" value="desc 3">
<input id="swtchname4" value="name 4">
<input id="swtchdesc4" value="desc 4">
<input id="swtchname5" value="name 5">
<input id="swtchdesc5" value="desc 5">
<input id="swtchname6" value="name 6">
<input id="swtchdesc6" value="desc 6">

是的,经过一番尝试,我找到了自己的路!!我做了这样一件事:

var SWarr = [];
for (var i = 0; i < count; i++) {
SWarr.push({
name: document.getElementById(namePrefix + i).value,
description: document.getElementById(descPrefix + i).value,
});
}
var jsonFormInfo = (JSON.stringify({ Switch: [SWarr] }));

非常感谢您的投入!

最新更新