为了账号安全,请及时绑定邮箱和手机立即绑定

根据动态属性更改对象值数组

根据动态属性更改对象值数组

德玛西亚99 2022-05-26 16:41:55
我有这样的对象数组let arr = [  {    "james-0": {      "value": "",      "error": false    },    "john-0": {      "value": "",      "error": false    },    "jordan-0": {      "value": "",      "error": false    }  }]如果值不是假/空字符串,我想将错误更改为真。我试过了,但它似乎不起作用,我无法硬编码james-${i}arr = arr.map((o,i) => {  let prop = o[`james-${i}`]  if(!prop.value) prop.error = true  console.log(prop)  return {    ...o,    [`james-${i}`]: prop  }})
查看完整描述

2 回答

?
茅侃侃

TA贡献1842条经验 获得超22个赞

就是这样?


let arr = 

    [ { "james-0":  { "value": "",    "error": false } 

      , "john-0":   { "value": "abc", "error": false } 

      , "jordan-0": { "value": "",    "error": false } 

      } 

    ] 


Object.keys(arr[0]).forEach( e=> arr[0][e].error = ( arr[0][e].value == ''))


console.log( arr ) 


查看完整回答
反对 回复 2022-05-26
?
慕运维8079593

TA贡献1876条经验 获得超5个赞

你可以试试这个方法


let arr = [

  {

    "james-0": {

      "value": "",

      "error": false

    },

    "john-1": {

      "value": "",

      "error": false

    },

    "jordan-2": {

      "value": "val",

      "error": false

    }

  }

];


arr = arr.map(value => {

    Object.keys(value).forEach(key => {

      if (!value[key].value) {

           value[key].error = true;

        }

    })

    return value;

})


console.log(arr);


查看完整回答
反对 回复 2022-05-26
  • 2 回答
  • 0 关注
  • 210 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号