我有一个 RESTFUL WEB 服务以 JSON 格式返回数据。需要使用 AngularJS从服务返回的 JSON 构建一个 Map。
例如,让 json 如下所示:
myJSON = [{
id: 8,
color: "red",
value: "#f00"
},
{
id: 37,
color: "green",
value: "#0f0"
},
{
id: 45,
color: "blue",
value: "#00f"
}]
需要使用上述 JSON 中的 id 和值构建映射。我可以想象如下:
var map = [myJSON.id : myJSON.value]
这将返回类似的东西
map = {8: "red", 37: "green", 45: "blue"}
一个简单的解决方案是通过 JSON 数组循环并构建一个映射,但还有其他方法可以实现我的目标吗?
在数组上使用 reduce
函数。参见 MDN。请注意,这与角度无关。这是香草js。
var mapped = myJSON.reduce(function(map, field) {
map[field.id] = field.color;
return map;
}, {});