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

我有这样的对象数组


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

  }

})


德玛西亚99
浏览 221回答 2
2回答

茅侃侃

就是这样?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 ) 

慕运维8079593

你可以试试这个方法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);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript