如何根据if条件删除JSON对象 现有代码报语法错误如何解决
错误原因
- JavaScript中没有
remove关键字,删除对象属性需要使用delete操作符 - 你代码开头多余的
And不符合JS语法规范,条件判断的执行逻辑格式也不严谨 - 缺少层级存在性判断,容易在
reqq[0]、reqq[0].attributes不存在时抛出类型错误
正确实现代码
如果你的运行环境支持ES2020+的可选链语法,可以直接用下面的代码:
if (reqq[0]?.attributes?.length > 0) { delete reqq[0].attributes[0].id; }
如果需要兼容低版本环境,使用层级判断写法:
if (reqq[0] && reqq[0].attributes && reqq[0].attributes.length !== 0) { delete reqq[0].attributes[0].id; }
代码说明
delete是JS原生的对象属性删除操作符,完全符合语法要求- 逐层判断属性存在性,避免访问不存在的属性时抛出类型错误
- 用大括号包裹条件执行的代码块,后续扩展逻辑时不会出现语法问题
内容的提问来源于stack exchange,提问作者Virender Kamboj
相关产品推荐
相关产品推荐

