美文网首页前端零碎
知识点(1️⃣)

知识点(1️⃣)

作者: 流着万条永远的河 | 来源:发表于2017-11-08 20:16 被阅读0次
function ha(num,tar){
  var arr =[]
  for(var i =0;i<num.length -1;i++){
      if(arr.length === 2)   return 
     for(var ind =i+1;ind<num.length;ind++){
       
       var sum = num[i] + num[ind]
        if(sum === tar){
         // console.log(num[i] ,num[ind],sum)
          arr.push(i)
          arr.push(ind)
          //console.log(arr)
        }
    }
    return arr
  }
 
  
}
ha([8,1,4,5,8],9)
console.log(ha([8,1,4,5,8],9))    //[0,1]

目的是为了一个数组里,找两个值的和等于预设的那个值,输出那两个值的下标。
思路很简单的,但是是最老土的方法了,里面有性能的损耗的,如果是要找到所有的结果倒是不会出现损耗了。然后虽然加了个判断,降低损耗,但是没有完全避免的。
有待改进。
我刚开始写了老是出错,但是自己觉得思路是对的,哪里出错了?后来自己试了好多地方,终于发现了,心里很懊悔的,就是等于号,if判定的时候,最好是三个等号去判定。这是教训啊。
还有,这是一个循环里套着另外一个循环,这里的作用域一定要分清,尤其是哪层才需要return出来。

后来,我发现数组的一个some的用法,我就试了试,大家可以看看,确实是比较理想的一种功耗方案,不过在实现过程中,我也是一步一步调试出来的,some的用法,我还是忘了很多的,一起玩玩它:
这里,有个bug,最后的数组里最后两个值,其实就是第一、第二个值的。具体如何产生的呢?其实我是懵逼的,暂时不明白,因为我加了条件判断,只要下标是最后一个就终止,其实还有一个缺点,这个下标是用indexOf找的,如果一个数组里有很多值相同的,那就又要做判断控制了,,,
但是在这里,其实要求只是输出第一组,这就简单了:
看看,我把循环的判定撤了,只是在循环里最后用return了,结果,循环自动断了。这里是完美的。
但是,如果是找出所有的的话,不要用indexOf求下标,还是最根本的for循环,这肯定没错的。

相关文章

  • 路径和命令重定向-06-21

    一、本文介绍 1.路径知识点; 2.命令知识点; 二、具体内容 1、路径知识点: 1. mkdir /data ...

  • 【文魁大脑实用记忆第二期】萧进才第20次《机械、经济学知识点》

    1、静态指标知识点 2、动态指标知识点 3、不确定分析知识点 4、夹具知识点 5、定位知识点

  • JS 基础知识点(下)

    【1】考题复习 【2】this 知识点: 【练习】 【3】arguments 知识点: (1)指向 函数自身引...

  • 30进阶:把 jQuery 加到简历里

    1. 无缝轮播 实现方法一: 知识点---1 知识点---2 知识点---3 2. DOM事件模型 DOM事件的开...

  • ppt

    知识点一:文字修饰 1、字体设置 2、文字输入 3、项目符号的设置与取消 知识点二:背景设置 1、填充背景 知识点...

  • 知识点1

    1.一个人学习做一件事的时候,启蒙的师父很重要,因为如果遇到了一个野路子的师父,学一堆坏毛病,将来纠正也纠正不过来...

  • 知识点1

  • 知识点(1)

    MessageQueue:就是一个消息队列,可以添加消息,并处理消息 Hanlder内部会跟Looper进行关联,...

  • 知识点1

    1

  • 知识点(1️⃣)

    目的是为了一个数组里,找两个值的和等于预设的那个值,输出那两个值的下标。思路很简单的,但是是最老土的方法了,里面有...

网友评论

    本文标题:知识点(1️⃣)

    本文链接:https://www.haomeiwen.com/subject/iygymxtx.html