高手进来看看这段代码,有什么问题?

经常敲代码,需要一遍一遍的审查。有些时候,自己一直审查,就是不知道哪里出现错误。有这么一位网友,就遇到了一个代码错误问题,在网络上发帖求助“请看一下下面的代码,有什么问题?”

这个求助帖一发出,就得到很多网友的热心回应。下面精选几个网友的回答:

网友一:

要理解这个函数的功能。

第三个框,`i` 是"数组下标(其实它是string类型)"还是object的key,取决于p。

第二个框是递归,理解一下深拷贝

第一个框, c[key]是数组还是对象还是值取决于传进来的p。p若是对象,有数组和对象两种拷贝处理方式,这也就是[]和{}区别。

网友二:

与代码无关,看你的报错信息,应该是mongodb中的blog表里面设置了一个不可重复的emailadress索引,你注册时用了与表中相同的email就会报这个错。

两种修改建议: 1.将这个索引改为可重复。2.在save入库中先比对email是否存在。

网友三:

第一个框是数组还是对象肯定有区别啊,按照代码来看,deepCopy的用途是深复制,把函数第一个形参复制给第二个形参,比如现在p对象有一个arr属性是数组,而c本来没有arr这个属性,现在初始化c.arr成{}的话,p.arr怎么赋值给c.arr?

第二个框就是递归,他是在一直循环调用,but不是无限循环,会一直循环到那个属性不是object然后不进入if语句直接执行else语句然后return,就会回到上层循环。

for...in这个方法里面的i是数组角标还是对象属性名要看p是对象还是数组。

网友四:

querystring.stringify改为JSON.stringify。

'Content-Type' : 'application/x-www-form-urlencoded',改为'Content-Type' : 'application/json',.

因为没有申请过,所以没有token没办法试,如果按上面的改了,不成功,请继续反馈,出错信息。

软件开发中bug在所难免,代码审查是软件开发中常用的手段。敲完代码,若是自己审查了好几遍,还是看不出自己写的代码出现什么问题,像上面那位网友一样,询问别人实很好的解决办法。下面这位网友,称“一串代码,我看的不是很明白,希望有牛人写清楚”。

这个问题,似乎感兴趣的人比较少,只有一个网友回答,他是这样回答的“把取出的数据赋值给public datatable dt 就好。执行SQL,得到数据。”

上面网友求助的两段代码,也许有人会觉得很简单,有人觉得很难。这也正常,毕竟每个人的水平不是一个层次,见解和看法都不一样。你的看法怎么样,可以在下面留言哦,希望你的答案可以帮到发帖者。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容