javascript - Angular 服务 - 多个查询和求和

标签 javascript angularjs json ajax

我有 1 个 API/项目返回 JSON

[  
   {  
      "id":100,
      "name":"some name",
      "x": "y"
   },
   {  
      "id":200,
      "another name",
      "x": "z"
   }
]

然后我有另一个 API/costs 调用返回类似于:

[  
   {  
      "projectid":100,
      "cost":300
   },
   {  
      "projectid":100,
      "cost":100
   },
   {  
      "projectid":200,
      "cost":500
   }
]

我目前写了一堆 ajax/jquery/JS 代码,用“id”、“name”和总和“cost”构建一个 JS 对象。我只是将它字符串化为一个 JSON 对象。

但是,以下查询更复杂,而且通过原始 JS 似乎是一种低效且几乎不可能的方式,因此我切换到 Angular 服务,因为它更容易为前端团队注入(inject)。

我对 Angular 一点都不熟悉,我只有一个简单的服务来查询所有项目或给定 ID 的 1 个项目。

是否可以在 Angular 中查询 API 并构建一个仅从第一个查询中获取 nameid 的 JSON,并对 cost< 求和/em> 用于第二个查询中的适当项目,并返回一个 JSON:

[  
   {  
      "id":100,
      "name":"some name",
      "cost":400
   }
]
[  
   {  
      "id":200,
      "name":"another name",
      "cost":200
   }
]

谢谢

最佳答案

这是一个简单的 Javascript 和线性复杂度的解决方案。

var project = [{ "id": 100, "name": "some name", "x": "y" }, { "id": 200, name: "another name", "x": "z" }],
    cost = [{ "projectid": 100, "cost": 300 }, { "projectid": 100, "cost": 100 }, { "projectid": 200, "cost": 500 }],
    merged = function (p, c) {
        var o = {},
            r = p.map(function (a) {
                o[a.id] = { id: a.id, name: a.name, cost: 0 };
                return o[a.id];
            });
        c.forEach(function (a) {
            o[a.projectid].cost += a.cost;
        });
        return r;
    }(project, cost);

document.write('<pre>' + JSON.stringify(merged, 0, 4) + '</pre>');

关于javascript - Angular 服务 - 多个查询和求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36252471/

相关文章:

javascript - 将文件保存在 angular.js 中的特定文件夹中

php - 添加参数到谷歌查询

javascript - Web 应用程序和 native Android 应用程序之间的通信

javascript - 正在进行的游戏无法运行

javascript - AngularJS requirejs RouteProvider 卡在主页上

javascript - 使用 angularjs : Input textbox gives TypeError: Cannot set property '0' of undefined 在 restful API 上通过 POST 提交网络表单

angularjs - 将复杂的嵌套SQL关联转换为可管理服务的前端数据建模最佳实践是什么?

Javascript - 获取输入 onclick 的更改值

java - 我无法循环遍历 JSON 数组来获取下一个数组

javascript - node.js - 按值对 JSON 对象进行排序