代码之家  ›  专栏  ›  技术社区  ›  Arvind Chourasiya

如何根据数组中“现有字段”的百分比添加“新字段”颜色

  •  -1
  • Arvind Chourasiya  · 技术社区  · 4 年前

    我有JSON数据,它有 percent 现场。在每条记录中,我想添加新字段 color 基于退出字段百分比。如果百分比

    >95% then add green
    90-95% then add yellow
    <90% then add red
    

    这是我的数据

    {
        "name": "ABER",
        "percent":100
    },
    {
        "name": "ABER",
        "percent":92
    },
    {
        "name": "HDCC",
        "percent":93
    },
    {
        "name": "HDCC",
        "percent":90
    },
    

    我正在寻找此输出

    {
        "name": "ABER",
        "percent":100
        "color":"green"
    },
    {
        "name": "ABER",
        "percent":92
         "color":= "yellow"
    },
    {
        "name": "HDCC",
        "percent":93
         "color":= "yellow"
    },
    {
        "name": "HDCC",
        "percent":90
        "color":= "red";
    },
    

    有可能做到吗?我该怎么做?

    1 回复  |  直到 4 年前
        1
  •  1
  •   Nil    4 年前

    您可以使用js-map函数,为数组中的对象添加另一个索引。 请参阅下面的代码。

    var a = [{
        "name": "ABER",
        "percent": 100
      },
      {
        "name": "ABER",
        "percent": 92
      },
      {
        "name": "HDCC",
        "percent": 93
      },
      {
        "name": "HDCC",
        "percent": 90
      }
    ];
    a = a.map((v) => {
      if (v.percent > 95) {
        v.color = "green";
      } else if (v.percent >= 90 && v.percent <= 95) {
        v.color = "yellow";
      } else {
        v.color = "red";
      }
      return v;
    });
    console.log(a);
        2
  •  1
  •   Thomas    4 年前

    您可以修改当前的列表/项目,只需添加新属性:

    var a = [
      { "name": "ABER", "percent": 100 },
      { "name": "ABER", "percent": 92 },
      { "name": "HDCC", "percent": 93 },
      { "name": "HDCC", "percent": 90 }
    ];
    
    for(let item of a){
      item.color = item.percent > 95 ? "green" : 
        item.percent > 90 ? "yellow" : 
        "red";
    }
    
    console.log(a);

    或者,您可以创建一个包含新模型的新项目的新列表:
    (见不变性主题)

    var a = [
      { "name": "ABER", "percent": 100 },
      { "name": "ABER", "percent": 92 },
      { "name": "HDCC", "percent": 93 },
      { "name": "HDCC", "percent": 90 }
    ];
    
    const b = a.map(({name, percent}) => {
      const color = percent > 95 ? "green" : 
        percent > 90 ? "yellow" : 
        "red";
        
      return {name, percent, color};
    });
    
    console.log(b);
    推荐文章