node-删除对象中指定属性失效问题-JSON.parse实例化

需求描述:

  删除 _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 

原文地址:https://www.cnblogs.com/zhangym118/p/9627714.html