如何将JavaScript的Object转换为另一种类型的Object?

时间:2017-07-25 07:22:15

标签: javascript arrays json

我有一个像这样的Java脚本对象,它有属性和值。

var obj = {
   key1: 'value1',
   key2: 'value2',
   key3: 'value3',
   key4: 'value4'
}

如何将其转换为此格式,将Property转换为另一个属性并将值转换为另一个属性并将其作为数组转换。

var obj = [
   {
   SettingTaget: 'key1'
   SettingValue: 'value1'
   }
   {
   SettingTaget: 'key2'
   SettingValue: 'value2'
   }
   {
   SettingTaget: 'key3'
   SettingValue: 'value3'
   }
   {
   SettingTaget: 'key4'
   SettingValue: 'value4'
   }

}

4 个答案:

答案 0 :(得分:2)

循环你的obj并创建一个数组并将对象推入数组。



var obj = {
   key1: 'value1',
   key2: 'value2',
   key3: 'value3',
   key4: 'value4'
};
var array_obj = [];
for( var key in obj){
  array_obj.push({SettingTaget:key,SettingValue:obj[key]});
}
console.log(array_obj);




答案 1 :(得分:1)

    var obj = {
       key1: 'value1',
       key2: 'value2',
       key3: 'value3',
       key4: 'value4'
    }
    var newObjArray =[];  
    for(var x in obj){
     newObjArray.push({
          SettingTarget:x,
          SettingValue:obj[x]
     });
   }

答案 2 :(得分:1)

你可以通过这种方式实现它:

var obj = {
   key1: 'value1',
   key2: 'value2',
   key3: 'value3',
   key4: 'value4'
};
var obj1 = [];
for(var i in obj){
    obj1[obj1.length] = {"SettingTaget":i, "SettingValue":obj[i]}
}
console.info(obj1);

答案 3 :(得分:0)

我更喜欢使用Object.keys(obj)而不是for(key in obj),因为对于更复杂的对象,您需要检查此for循环中的hasOwnProperty

var obj = {
   key1: 'value1',
   key2: 'value2',
   key3: 'value3',
   key4: 'value4'
};

var newObjArray = Object.keys(obj).map(function(key)
        {
          return {                
              'SettingTarget': key,
              'SettingValue': obj[key]
          };
        });

console.log(newObjArray);