在Javascript对象中添加键值对

时间:2017-12-23 13:41:48

标签: javascript

我在Javascript中有一个对象。我想在其中添加键值对。

var data = {
    'Country1' : '20',
    'country2': '30',
    'country3': '40',
    'country4' : '45'
};

看起来应该是,

var data = {
        {name: 'country1', values: '20'},
        {name: 'country2', values: '30'},
        {name: 'country3', values: '40'},
        {name: 'country4', values: '45'},
    };

我正在寻找一个解决方案,从给定的对象中,国家/地区名称将自动归入name,值将变为values

3 个答案:

答案 0 :(得分:3)

使用Object#keys迭代对象的Array#map,并以您想要的格式返回一个对象。

注意:为了确保对象的顺序,您可以使用String#localeCompare和numeric: true选项对键进行排序。



var data = {
    'Country1' : '20',
    'country2': '30',
    'country3': '40',
    'country4' : '45'
};

var result = Object.keys(data)
  .sort(function(a, b) { // if you need to ensure the order of the keys
    return a.localeCompare(b, undefined, { numeric: true})
  })
  .map(function(key) {
    return {
      name: key,
      value: data[key]
    };
  });

console.log(result);




答案 1 :(得分:0)

使用 Objecy.Keys forEach 来遍历对象,



var data = {
    'Country1' : '20',
    'country2': '30',
    'country3': '40',
    'country4' : '45'
};
var result = [];
Object.keys(data).forEach(key => {
    result.push({'name':key,'value':data[key]});
    
});
console.log(result);




答案 2 :(得分:0)

或使用Object.entries

 data = Object.entries(data).map(([name, values]) => ({name, values}));