2017-07-25 50 views
-2

我有一个Java脚本对象像这样,它具有属性和值。如何将JavaScript对象转换为另一种类型的对象?

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

我怎么可以转换成这种格式,属性到另一个属性和值到另一个属性,并希望作为数组。

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

}

+0

迭代Object,并在数组中推入新对象。 – Tushar

+0

看看对象迭代 – MysterX

+0

看一看'Object.keys()'和'Object.values()' – Laazo

回答

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

啊...打我上 –

+0

谢谢。这解决了我的问题 –

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] 
    }); 
    } 
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); 
0

我更喜欢使用Object.keys(obj)代替for(key in obj)因为更复杂的对象,你需要检查hasOwnProperty在该for循环

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); 
相关问题