迭代对象并根据特定条件返回图标

lx0bsm1f  于 2022-10-22  发布在  Java
关注(0)|答案(1)|浏览(152)

我正在尝试创建一个函数,检查对象属性是否等于true或false,并根据布尔值返回不同的图标。使用对象时。values返回正确的值,但我无法使用属性名称检查我的条件。如果我反对。进入控制台。日志如下:
['inverted', false]
我的代码示例:

showTrend(stat) {
      const verifyCardObject = Object.values(stat).map((value) => {
        const x = value.inverted ? -1: 1;
        console.log(x, 'x')
        if ((x * value.currentScore) - (x * value.lastScore) > 0.1) {
          return (value.inverted ? 'pi-caret-down': 'pi-caret-up') + " high";
        }
        else if ((x * value.currentScore) - (x * value.lastScore) < -0.1) {
          return (value.inverted ? 'pi-caret-up': 'pi-caret-down') + " low";
        }
        else {
          return "pi-sort equal";
        }
    })
    // console.log(verifyCardObject)
    return verifyCardObject; 
        }

示例对象:

metrics: [
                    {
                        name: "Saftey",
                        currentScore: "10",
                        lastScore: "2",
                        uom: "",
                        icon: "fas fa-heartbeat",
                        key: "safety",
                        inverted: false
                    },
                    {
                        name: "Soc",
                        currentScore: "10",
                        lastScore: "2",
                        uom: "",
                        icon: "fas fa-users",
                        key: "soc",
                        inverted: false    
                    },
]
qltillow

qltillow1#

要使用与Object.values相同的Object.entries,请在赋值时使用参数析构函数

Object.values(obj).map((val) => {
   doSomething('whats key', val)
})
// note that destructuring also requires argument brackets `()` over `[]`
Object.entries(obj).map(([key, val]) => {
   doSomething(key, val)
})

相关问题