我有以下数组包含对象:
[
{
"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尝试了一些变体,但未能得到一个很好的解决方案。
答案 0 :(得分:1)
使用Array#forEach
并更新对象。
var data = [{
"timestamp_start": {
"S": "2016-11-28T10:35:48.100Z"
},
"timestamp_stop": {
"S": "2016-11-28T10:39:48.100Z"
},
"deviceId": {
"S": "0"
},
"userId": {
"S": "0"
}
}];
data.forEach(function(obj) {
Object.keys(obj).forEach(function(k) {
obj[k] = obj[k][Object.keys(obj[k])[0]]
})
})
console.log(data);

答案 1 :(得分:0)
您可以使用map()
和reduce()
来获得所需的结果。
var data = [{
"timestamp_start": {
"S": "2016-11-28T10:35:48.100Z"
},
"timestamp_stop": {
"S": "2016-11-28T10:39:48.100Z"
},
"deviceId": {
"S": "0"
},
"userId": {
"S": "0"
}
}]
var result = data.map(function(e) {
return Object.keys(e).reduce(function(r, k) {
r[k] = e[k].S
return r;
}, {})
})
console.log(result)
答案 2 :(得分:0)
您可以查找属性S
并获取值。
var object = { timestamp_start: { S: "2016-11-28T10:35:48.100Z" }, timestamp_stop: { S: "2016-11-28T10:39:48.100Z" }, deviceId: { S: "0" }, userId: {S: "0" } };
Object.keys(object).forEach(function (k) {
if ('S' in object[k]) {
object[k] = object[k].S;
}
});
console.log(object);