当前位置: 首页 > 工具软件 > Keys.js > 使用案例 >

js中Object.keys用法

狄承望
2023-12-01

有时候我们需要遍历对象中的属性取值去做一些事情,但是对象没有for循环的方法,这时候我们可以取出对象中属性名字为数组然后遍历取值

比如我们要遍历下面这个对象:计算得分的总和

{
    "哪年": {
        "type": "circularRadio", 
        "name": "哪年",
        "value": "0", 
        "items": [
            {
                "label": "1",
                "value": "1"
            },
            {
                "label": "0",
                "value": "0"
            }
        ]
    },
    "哪年得分": {
        "type": "appendtext",
        "name": "哪年得分",
        "value": "0"
    },
    "季节": {
        "type": "circularRadio", 
        "name": "季节",
        "value": "1", 
        "items": [
            {
                "label": "1",
                "value": "1"
            },
            {
                "label": "0",
                "value": "0"
            }
        ]
    },
    "季节得分": {
        "type": "appendtext",
        "name": "季节得分",
        "value": "1"
    } 
}

我们可以这样做:
先通过Object.keys将对象转换为键值对形式,然后再过滤一下计算总和的属性,然后再循环取属性的值计算
Object.keys之后会得到[‘哪年’,‘哪年得分’, ‘季节’, ‘季节得分’]
filter过滤之后就会得到[‘哪年得分’, ‘季节得分’]
循环这个数组 取对象中的值 就可以得出总和

let 总分 = 0;
      Object.keys(fieldsFlat).filter(a => a.endsWith("得分")).forEach(item => {
          总分 += valueUtil.valueTransformNumber(
            fieldsFlat[item].value
          );
        });
 类似资料: