如何从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,因此您可以使用箭头函数的单参数版本
var inputs = $("form :input");
var obj = $.map(inputs, x => ({
[x.name]: $(x).val()
})
);
或
var obj = $.map(inputs, x => ({[x.name]: $(x).val()}));
相关文章:
- 兰吉 |如何在 span 标签上使用单击事件删除突出显示的文本
- JavaScript-如果以前不存在文本,如何从文本区域删除新行
- 如何动态添加和删除多个类名的文本
- jQuery从标签中删除括号/文本
- 单击文本时删除文本框的默认数据
- 添加/删除/更改输入文本的部分值
- 在显示/隐藏中单击时删除的文本
- 单击时从表单中删除特定文本
- 使用VBScript或Javascript从文本框(文本区域)中删除最后一行空/空行
- 使用删除文本创建新行
- Wordpress TinyMCE在从文本切换到视觉时,如果锚标记包裹块元素,则会删除锚标记
- 为什么jQuery正在删除文本的最后一个字符
- 如何删除特定文本短语的所有实例
- 通过点击文本区域添加和删除多个标签
- 隐藏<标签>abc标签>之间的文本 - 删除“ ABC”
- JavaScript 拆分字符串 选定的文本删除
- jQuery淡入/淡出替换文本删除链接
- 遍历元素列表并根据内部文本删除元素上的游标样式
- 将逗号后的文本删除到行尾
- 需要有关jQuery条件的帮助,该条件基于匹配的文本删除容器元素