簡體   English   中英

創建一個二維 object 並在 javascript 中的 json 中打印

[英]create a Bidimensional object and print it in json in javascript

我在使用 javascript(無 jquery)創建 object 數組 2d 時遇到一些問題

output 應該是其中之一:

{"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"}]}

我達到的唯一一個目標是使用兩個不同的 arrays,一個用於名稱,一個用於描述,執行如下操作:

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);
}

我想創建一個二維的 object 並將所有數據放入其中。

我怎樣才能改變這個? 因為如果我像這樣創建一個 object,它應該也很容易打印 JSON 格式,對吧?

假設您有swtchname{x}swtchdesc{x}作為id<input>元素,其中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] }));

非常感謝您的意見!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM