如何在javascript中更改数组对象的索引和值

时间:2016-10-05 07:26:59

标签: javascript jquery

我有这个Javascript对象如下格式,但我想将其转换为另一种格式,如下所示: 我已通过值格式let data = $('#clientForm')。serializeArray(); 原始格式

 let data = $('#clientForm').serializeArray();
 { name="addr_types",  value="RESID"}

通缉格式

 {addr_types:"RESID"}

或其他格式

 {"addr_types":"RESID"}

enter image description here

3 个答案:

答案 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}
       });

这是jsfiddle链接:https://jsfiddle.net/kzrngch6/