需求描述:
删除 _body 对象里的 code 字段。用 detele 删除后输出的_body 里仍有 code 字段。
body是从后台得到的json串,所以要先 parse 转换成对象,本以为 delete 之后body会更新,注意下面输出的是 JSON.parse(body) ,输出的内容并未删除 code
let body = [{"id":45,"code":9,"}]
let _body = JSON.parse(body)
_body.forEach(e => {
delete e.code;
})
console.log(_body) // 已删除 code
console.log(JSON.parse(body))
因为 delete e.code; 只是修改对象的引用,而 JSON.strinfly() Parse()是重新生成一个实例,所以 code 并未删除。delete命令指示释放了那个指针原本所指的那部分内存而已
正确的写法是 输出 _body