需求分析
当我们在遇到需要深拷贝一个对象所有属性的时候
会想把关联的数据排除在外,例如这样的一个对象关联的send_by_user
当你的需求是修改这个庞大对象并且整体提交更新的时候会发现以下问题
- 这个多余关联的对象不需要提交
- 发出请求的数据量变大
1 | { |
解决方法
控制 JSON.stringify 序列化层级JSON.stringify(value[, replacer [, space]])
使用JSON.stringify时传入第二个参数
- replacer 可选
如果该参数是一个函数,则在序列化过程中,被序列化的值的每个属性都会经过该函数的转换和处理;如果该参数是一个数组,则只有包含在这个数组中的属性名才会被序列化到最终的 JSON 字符串中;如果该参数为 null 或者未提供,则对象所有的属性都会被序列化。
那我们只需要通过replacer传入函数过滤掉属性值是Object即可
1 | JSON.stringify(message,(k,v) => { |