JavaScript - 将数组中的大对象转换为对象数组

JavaScript - convert large object in an array to an array of objects

我有一个包含一个对象的数组:

[
    {
        value 0: "value", 
        value 1: "value", 
        value 2: "value", 
        value 3: "value", 
        value 4: "value", 
        value 5: "value", 
        value 6: "value", 
        value 7: "value", 
        value 8: "value", 
        value 9: "value"
    }
]

理想情况下,我需要它看起来更像这样:

[
    {
        value 0: "value"
    },
    {
        value 1: "value"
    },
    {
        value 2: "value"
    },
    ...
]

如果可能我也想替换对象的键,使它们都一样。

有什么方法可以用 JavaScript 做到这一点吗?

示例将不胜感激!

感谢您的宝贵时间

您可以映射数组中第一个对象的键(使用 ECMAScript 2015):

var data = [{
    'value 0': 'value',
    'value 1': 'value',
    'value 2': 'value',
    'value 3': 'value',
    'value 4': 'value',
    'value 5': 'value',
    'value 6': 'value',
    'value 7': 'value',
    'value 8': 'value',
    'value 9': 'value'
}];

var first = data[0];
var result = Object.keys(first).map(key => ({ [key]: first[key] }));

console.log(result);

这可以通过使用 forEachmap 来解决:

var result = []
arrayOfObjects.forEach(function(object) {
  result = result.concat(Object.keys(object).map(function(key) {
    return {
      value: object[key]
    }
  }))
})
console.log(result)

...或使用普通循环:

var result = []
for (var i = 0; i < arrayOfObjects.length; i++) {
  var object = arrayOfObjects[i]
  for (var key in object) {
    result.push({
      value: object[key]
    })
  }
}
console.log(result)

关于 ES5 的提议

function format(object, array) {
    Object.keys(object).forEach(function (k) {
        var o = {};
        o[k] = object[k];
        array.push(o);
    });
}

var data = [{ 'value 0': "value", 'value 1': "value", 'value 2': "value", 'value 3': "value", 'value 4': "value", 'value 5': "value", 'value 6': "value", 'value 7': "value", 'value 8': "value", 'value 9': "value" }],
    formated = [];

format(data[0], formated)
document.write('<pre>' + JSON.stringify(formated, 0, 4) + '</pre>');

所有对象都有名为 "value" 的键。将其更改为您需要的任何内容。

var out = Object.keys(arr[0]).map(function (el) {
  return { value: arr[0][el] };
});

这从对象中获取键,并使用 map,returns 一个新数组,其中填充了使用原始对象的 key/value 对中的值的对象。

DEMO