簡體   English   中英

如何從JavaScript對象中刪除“鍵”和“值”文本?

[英]How to I remove “Key” and “Value” text from JavaScript Object?

我有一個HTML表單,並且正在使用以下代碼將該表單輸入轉換為對象:

var inputs = $("form :input");
var obj = $.map(inputs, function (x, y) {
    return {
        Key: x.name,
        Value: $(x).val()
    };
});

這會給我這樣的信息:

[
  {"Key":"spouseFirstName","Value":"Jack"},
  {"Key":"spouseLastName","Value":"Jill"},
  {"Key":"numberOfChildren","Value":"2"},
  {"Key":"child1Age","Value":"5"},
  {"Key":"child2Age","Value":"3"},
  {"Key":"","Value":"SUBMIT"}
]

但是我想要的是:

[
  {"spouseFirstName":"Jack"},
  {"spouseLastName":"Jill"},
  {"numberOfChildren":2},
  ...
]

請幫我。

ES5(運行eveywhere的JavaScript)

var inputs = $("form :input");
var obj = $.map(inputs, function (x, y) {
    var ret = {};
    ret[x.name] = $(x).val();
    return ret;
});

ES2015-現在,在所有好的瀏覽器(不是IE)中,都使用計算屬性名稱

var inputs = $("form :input");
var obj = $.map(inputs, function (x, y) {
    return {
        [x.name]: $(x).val()
    };
});

如果您要使用ES2015,請全部使用-所有好的瀏覽器都可以使用箭頭功能 -注意,使用返回對象文字語法

var inputs = $("form :input");
var obj = $.map(inputs, (x, y) => ({
        [x.name]: $(x).val()
    })
);

要么

var obj = $.map(inputs, (x, y) => ({[x.name]: $(x).val()}));

但這可能不那么可讀

而且由於根本不使用Y,因此可以使用arrow函數的單參數版本

var inputs = $("form :input");
var obj = $.map(inputs, x => ({
        [x.name]: $(x).val()
    })
);

要么

var obj = $.map(inputs, x => ({[x.name]: $(x).val()}));

暫無
暫無

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

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