javascript - 从 JSON api 检索特定键名时遇到问题

标签 javascript json key

我有一个具有以下 JSON 签名的 API:

[{
   "id": 3,
   "impact": 7,
   "probability": 0.7,
   "title": "Risk 3"
}]

现在我可以说 3 个类似的对象采用这种格式,它们实际上展示了公司的不同风险名称或编号。现在我需要找出哪个风险数字具有最高的影响或概率。哪个风险的 RPZ 最高,

 RPZ = impact * probability 

我已经设法找到 json 中任何属性的最高值。但我尝试了很多方法来找出与之相关的标题或风险名称。这是我的目标,但我无法做到。例如,我的目标是获得最高值,比方说上面示例的影响,即 7,并打印出其风险名称,即此处的标题。我能够获得最高值,但无法打印出相应的风险名称或标题。

一个小片段......

var con = JSON.parse(body);

var highImpact = Math.max.apply(Math, con.map(i => i.impact));

现在从上面的highImpact为7,现在我需要提取出相应的风险名称,即......风险3。这就是我正在努力的地方。

我检查了这个社区中其他开发人员提出的很多类似问题,以及在互联网上找到的几个网页和博客。但到目前为止,我还没有找到解决方案。

如果你们中有人能帮助我,我将非常感激

v

ar Request = require('request');


Request.get("https://webdevbootcamp-jay-jayantamgr.c9users.io/api/risks", (error, response, body) => {
    if(error)
    {
        return console.dir(error);
    }
    var con = JSON.parse(body);

    var highImpact = Math.max.apply(Math, con.map(i => i.impact));


    var highProb = Math.max.apply(Math, con.map(p => p.propability));



    let dictRPZ = [];
    function addRPZ(RiskName, RPZ){
        dictRPZ.push({RiskName, RPZ});
    }

    con.forEach(function(item){
        var RPZ = item.impact * item.propability;
        addRPZ(item.title, RPZ);
    });

});

预期结果是制作一个仪表板并显示影响最大的风险、最高的 RPZ、实时风险表和移动平均图

最佳答案

您可以通过按降序排序并选择排序数组的第一个元素来实现此目的。

let arr = [
  { "id": 3, "impact": 7, "probability": 0.7, "title": "Risk 3" },
  { "id": 4, "impact": 8, "probability": 0.8, "title": "Risk 4" }
]

let highestImpact = arr.sort((a,b)=>b.impact-a.impact)[0].title;

console.log(highestImpact)

对于最高的RPZ,你可以这样做

let arr = [
      { "id": 3, "impact": 7, "probability": 0.7, "title": "Risk 3" },
      { "id": 4, "impact": 8, "probability": 0.8, "title": "Risk 4" },
      { "id": 5, "impact": 10, "probability": 0.8, "title": "Risk 5" }
]

let highestRpz = arr.map(e=> {
 e.rpz= e.impact * e.probability
 return e;
 }).sort((a,b)=>b.rpz-a.rpz)[0].title

    console.log(highestRpz)

关于javascript - 从 JSON api 检索特定键名时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53948620/

相关文章:

javascript - 使用 Raphael 创建水平线性渐变

javascript - 多页面站点中 jQueryMobile/jQuery 的问题

algorithm - 是否有任何采用 7 字节 key 的 DES 库或代码?

ruby - 在Twitter gem中,如何配置consumer_key和consumer_key_secret?

java - 如何使用私钥

javascript - AngularJS - 解析的数据不会在嵌套状态组件中刷新

javascript - Angular 插件 ZeroClipboard 不工作

c# - C# 中对象(带数组)的 API

java - android 截击超时错误

android - android中的图像幻灯片放映