我有这个Javascript对象如下格式,但我想将其转换为另一种格式,如下所示: 我已通过值格式let data = $('#clientForm')。serializeArray(); 原始格式
let data = $('#clientForm').serializeArray();
{ name="addr_types", value="RESID"}
通缉格式
{addr_types:"RESID"}
或其他格式
{"addr_types":"RESID"}
答案 0 :(得分:6)
假设有效对象,您可以只使用给定的键/值对分配所需属性。
var source = { name: "addr_types", value: "RESID" },
target = {};
target[source.name] = source.value;
console.log(target);
具有计算属性的ES6
var source = { name: "addr_types", value: "RESID" },
target = { [source.name]: source.value };
console.log(target);
答案 1 :(得分:1)
鉴于您的原始对象是正确的
var original = {
name: "addr_types",
value: "RESID"
};
console.log(original);
var newName = original.name;
var newValue = original.value;
var newObject = {};
newObject[newName] = newValue;
console.log(newObject);

答案 2 :(得分:1)
您可以简单地使用.map()
函数来完成此操作。波纹管就是一个例子。
var original = [{
name: "addr_types",
value: "Work"
},{
name: "village",
value: "Vang Tobang"
},{
name: "commune",
value: "Tang Krasang"
},{
name: "destric",
value: ""
},{
name: "city",
value: "Com Pong Thom"
},{
name: "country",
value: "combodia"
},
];
newArray = original.map(function(item){
return {[item.name]: item.value}
});
如果数据容器不是数组,则可以像下面这样简单地创建。
newArray = [original].map(function(item){
return {[item.name]: item.value}
});