什么是递归?

末蓝、 2022-10-13 05:24 262阅读 0赞

目前我找到的对递归最恰当的比喻,就是查词典
我们使用的词典,本身就是递归,为了解释一个词,需要使用更多的词。
当你查一个词,发现这个词的解释中某个词仍然不懂,于是你开始查这第二个词,可惜,第二个词里仍然有不懂的词,于是查第三个词,这样查下去,直到有一个词的解释是你完全能看懂的,那么递归走到了尽头,然后你开始后退,逐个明白之前查过的每一个词,最终,你明白了最开始那个词的意思。。。

解释:

递归,就是在运行的过程中调用自己

  1. const oldObj = {
  2. name:'测试',
  3. age:20,
  4. colors:['orange','green','blue'],
  5. friend:{
  6. name:'小夏'
  7. }
  8. }
  9. // 深拷贝函数
  10. function deepClone(obj){
  11. if(typeof obj !=='object' || obj == null){
  12. return obj;
  13. }
  14. let result;
  15. if(obj instanceof Array){
  16. result=[]
  17. } else {
  18. result ={}
  19. }
  20. for(let key in obj){
  21. if(obj.hasOwnProperty(key)){
  22. result[key] = deepClone(obj[key])
  23. }
  24. }
  25. return result;
  26. }
  27. const newObj2 = deepClone(oldObj)
  28. newObj2.friend.name = '小野'
  29. newObj2.name = 'xiannv'
  30. newObj2.colors[4]='black'
  31. console.log('oldObj',oldObj)
  32. console.log('newObj',newObj2)

发表评论

表情:
评论列表 (有 0 条评论,262人围观)

还没有评论,来说两句吧...

相关阅读

    相关 什么

    什么是递归 \\递归:\\如果一个函数在内部可以调用其本身,那么这个函数就是递归函数。简单理解:函数内部自己调用自己, 这个函数就是递归函数 \\注意:\\递归函数的作

    相关 什么

    > 目前我找到的对递归最恰当的比喻,就是查词典。 > 我们使用的词典,本身就是递归,为了解释一个词,需要使用更多的词。 > 当你查一个词,发现这个词的解释中某个词仍然不

    相关 什么

    程序调用自身就叫做递归。 递归一般用来算一些比较麻烦的算法问题。 递归跟循环的区别,循环注重过程,而递归值注重结果。 简单的来说就是:用循环能实现的,递归一般可以实