考虑下面这个对象:
{
"_items": [
{
"_id": "player_1",
"score": {
"a": -4.74,
"b": 0.71,
"c": -4.04,
"d": 3.37,
"e": 0.22,
"f": 1.09,
"g": -2.17
}
}
]
}
我会映射和减少并生成一个仅包含分数对象的新对象:
{
"a": -4.74,
"b": 0.71,
"c": -4.04,
"d": 3.37,
"e": 0.22,
"f": 1.09,
"g": -2.17
}
我在想这样的事情可能会朝着正确的方向发展,但似乎并没有达到我的预期:
this.service.getscore()
.map(res => res.json())
.map(v => v._items[0].score)
.subscribe(data => { this.sc = data });
console.log(this.sc);
会给我与第一个 json 相同的结果。
虽然我认识到在服务器端执行此操作可能更好、更容易,但在我的情况下这是不可能的。我想知道我想要做的事情是否可以在客户端使用 JavaScript 完成。有什么建议么?
最佳答案
您可以尝试下面的代码吗:
var item = {
"_items": [{
"_id": "player_1",
"score": {
"a": -4.74,
"b": 0.71,
"c": -4.04,
"d": 3.37,
"e": 0.22,
"f": 1.09,
"g": -2.17
}
},
{
"_id": "player_2",
"score": {
"a": -4.74,
"b": 0.71,
"c": -4.04,
"d": 3.37,
"e": 0.22,
"f": 1.09,
"g": -2.17
}
}
]
};
let arrayScores = item._items.map(el => el.score);
console.log(arrayScores);
有 arrayScores 值:
[{
a: -4.74,
b: 0.71,
c: -4.04,
d: 3.37,
e: 0.22,
f: 1.09,
g: -2.17
}, {
a: -4.74,
b: 0.71,
c: -4.04,
d: 3.37,
e: 0.22,
f: 1.09,
g: -2.17
}]
有意义吗?
关于javascript - 使用 JavaScript 映射和缩减 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44080953/