Javascript - 将对象的对象转换为数组并使用数组内的键

Vii*_*ira 1 javascript typescript

我有一个已转换为数组的对象的对象,现在我想将数组中每个项目的键用作单独的值。

我试过的代码。

let data = {
  99: {
    "avg": [1,2],
    "min": [],
    "max": []
  },
  100: {
    "avg": [50,10],
    "min": [],
    "max": []
  },
  120: {
    "avg": [42,8],
    "min": [],
    "max": []
  },
}

var arr = Object.keys(data).map(function (key) {
  return { [key]: data[key] };
});

arr.forEach(element => {
  element.sensor = Object.keys(element);
});

console.log(arr);
Run Code Online (Sandbox Code Playgroud)

输出是

[
  {
    "99": {
      "avg": [
        1,
        2
      ],
      "min": [],
      "max": []
    },
    "sensor": [
      "99"
    ]
  },
  {
    "100": {
      "avg": [
        50,
        10
      ],
      "min": [],
      "max": []
    },
    "sensor": [
      "100"
    ]
  },
  {
    "120": {
      "avg": [
        42,
        8
      ],
      "min": [],
      "max": []
    },
    "sensor": [
      "120"
    ]
  }
]
Run Code Online (Sandbox Code Playgroud)

但我希望预期的输出是这样的。

     [
  {
    "99": {
      "avg": [
        1,
        2
      ],
      "min": [],
      "max": [],
      "sensor": "99"
    }
  },
  {
    "100": {
      "avg": [
        50,
        10
      ],
      "min": [],
      "max": [],
      "sensor": "100"
    }
  },
  {
    "120": {
      "avg": [
        42,
        8
      ],
      "min": [],
      "max": [],
      "sensor": "120"
    }
  }
]
Run Code Online (Sandbox Code Playgroud)

小智 5

...将对象转换为数组本身时,可以使用展开运算符附加传感器值

var arr = Object.keys(data).map(function (key) {
  return { 
    [key]: { ...data[key], sensor: key } 
  };
});
Run Code Online (Sandbox Code Playgroud)

var arr = Object.keys(data).map(function (key) {
  return { 
    [key]: { ...data[key], sensor: key } 
  };
});
Run Code Online (Sandbox Code Playgroud)