Javascript js重新构造对象以提升属性
我有以下带有对象的数组:Javascript js重新构造对象以提升属性,javascript,Javascript,我有以下带有对象的数组: [ { "timestamp_start":{"S":"2016-11-28T10:35:48.100Z"}, "timestamp_stop":{"S":"2016-11-28T10:39:48.100Z"}, "deviceId":{"S":"0"}, "userId":{"S":"0"} } ] S属性表示该值是一个字符串。我以后不需要这些信息,我希望将其删除,而是将值“提升”一级,以获
[
{
"timestamp_start":{"S":"2016-11-28T10:35:48.100Z"},
"timestamp_stop":{"S":"2016-11-28T10:39:48.100Z"},
"deviceId":{"S":"0"},
"userId":{"S":"0"}
}
]
S属性表示该值是一个字符串。我以后不需要这些信息,我希望将其删除,而是将值“提升”一级,以获得以下数组:
[
{
"timestamp_start": "2016-11-28T10:35:48.100Z",
"timestamp_stop": "2016-11-28T10:39:48.100Z",
"deviceId": "0",
"userId": "0"
}
]
我已经尝试了Object.map.keys.values的一些变体,但未能得到一个好的解决方案。您可以使用map()
和reduce()
来获得所需的结果
var数据=[{
“开始时间戳”:{
“S”:“2016-11-28T10:35:48.100Z”
},
“时间戳\停止”:{
“S”:“2016-11-28T10:39:48.100Z”
},
“设备ID”:{
“S”:“0”
},
“用户ID”:{
“S”:“0”
}
}]
var result=data.map(函数(e){
返回Object.keys(e).reduce(函数(r,k){
r[k]=e[k].S
返回r;
}, {})
})
console.log(结果)
使用并更新对象
var数据=[{
“开始时间戳”:{
“S”:“2016-11-28T10:35:48.100Z”
},
“时间戳\停止”:{
“S”:“2016-11-28T10:39:48.100Z”
},
“设备ID”:{
“S”:“0”
},
“用户ID”:{
“S”:“0”
}
}];
data.forEach(功能(obj){
Object.keys(obj.forEach)(函数(k){
obj[k]=obj[k][Object.keys(obj[k])[0]]
})
})
控制台日志(数据)代码>您可以查找属性S
并获取值
var object={timestamp_start:{S:'2016-11-28T10:35:48.100Z},timestamp_stop:{S:'2016-11-28T10:39:48.100Z},设备ID:{S:'0},用户ID:{S:'0};
Object.keys(对象).forEach(函数(k){
if对象[k]中的('S')){
对象[k]=对象[k].S;
}
});
console.log(对象)你能分享这些变化吗?