簡體   English   中英

將JSON對象附加到同一對象

[英]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.

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