[英]Append JSON objects to same object
我從HTML表單的VueJS函數調用中獲取表單元素。 我創建一個JSON,像:
var elements = event.target.elements;
var form_elements = [];
for (var i = 0; i < elements.length; i++) {
var element = {};
element[elements[i].getAttribute('name')] = elements[i].value;
form_elements.push(element);
}
form_elements = JSON.stringify(form_elements);
我得到的JSON如下:
var form_elements = [{'name':'John'},{'age':'20'},{'gender':'Male'},];
我想將其轉換為:
var form_elements = {'name':'John','age':'20','gender':'Male'};
進行ajax調用。 這個怎么做?
使用Array.reduce()
將元素組合到單個對象中:
var elements = event.target.elements;
var form_elements = elements.reduce(function(r, el) {
r[el.getAttribute('name')] = el.value;
return r;
}, {});
for
塊中的一個臨時變量在您的情況下是沒有用的,最終的代碼可能如下所示:
var elements = event.target.elements;
var form_elements = {};
for (var i = 0; i < elements.length; i++) {
form_elements[elements[i].getAttribute('name')] = elements[i].value;
}
而form_elements
最終是您需要的,嘗試JSON.stringify
進行JSON.stringify
。
嘗試這個 :
var form_elements = [{'name':'John'},{'age':'20'},{'gender':'Male'}]; var obj = {}; for (var i in form_elements) { obj[Object.keys(form_elements[i])[0]] = form_elements[i][Object.keys(form_elements[i])[0]]; } console.log(obj); // {name: "John", age: "20", gender: "Male"}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.