美文网首页Web 前端开发 让前端飞
【Javascript】寻找另一半

【Javascript】寻找另一半

作者: 雨水之后 | 来源:发表于2017-11-28 16:12 被阅读0次

有一个能力数组[7,9,11,13,15],按照最佳组合值为20来计算,只有7+13和9+11两种组合。而7在数组的索引为0,13在数组的索引为3,9在数组的索引为1,11在数组的索引为2。

所以我们说函数:pairwise([7,9,11,13,15],20) 的返回值应该是0+3+1+2的和,即6。

function pairwise(arr, arg) {

  //把数组复制一个,在函数内使用
  var pairArr = arr.slice();

  //使用reduce方法去进行累加,并设定初始值为0用于返回结果
  return pairArr.reduce(function(acc,curValue,curIndex){

    //获取目标值与当前被测试值的差,便于在数组中寻找匹配
    var diff = arg - curValue;

    //如果数组中有差值,并且差值的index不是当前值的话
    if(pairArr.indexOf(diff)!=-1&&pairArr.indexOf(diff)!=curIndex){

      //把两个数的index相加
      var total = pairArr.indexOf(diff) + curIndex;

      //把以上步骤中刚被测试的两个数删除并替换为NaN,避免重复查询,也避免了index值发生混乱
      pairArr.splice(curIndex,1,NaN);
      pairArr.splice(pairArr.indexOf(diff),1,NaN);

      //计入累加器acc
      return acc + total;
    }

    //返回累加器中的值
    return acc;

  },0);

}

THE END.

相关文章

  • 【Javascript】寻找另一半

    有一个能力数组[7,9,11,13,15],按照最佳组合值为20来计算,只有7+13和9+11两种组合。而7在数组...

  • 2018-05-15

    寻找另一半倒不如说是寻找自己

  • 另一半关系

    每当我们寻找另一半关系的时候,其实都是寻找的自己。

  • 二月计划

    二月主题是如何寻找另一半。

  • 不完整的我

    我来这的时候 贪恋一时的玩耍 丢了很多东西 现在我正在努力的向前走 边走边寻找 寻找 另一半自信,另一半成功, 另...

  • 每个人都在寻找空白的另一半

    我,终于是走了290个月零5天。发现,身边每个人都在寻找自己的价值。也在寻找自己空白的另一半! 什么是空白的另一半...

  • 雌雄同体赢天下

    “人本来都是雌雄同体的,终其一生我们都在寻找缺失的另一半!”与其苦苦寻找不如好好修炼让自己拥有另一半的特质完成“雌...

  • 遇见你,是个意想不到的惊喜

    我们一直在寻找,寻找合适的工作,寻找适合自己的另一半,其实很早之前我们就已经走上了“寻找”这条路,刚学会走路的时候...

  • 我们终其一生都在寻找自己

    有人说我们终其一生都在寻找自己,或者寻找另一半的自己,或许寻找自己的使命,或许寻找自己无处安放的梦想。 有时候我们...

  • 寻找灵魂伴侣是一场骗局吗?

    能量天使收集 “寻找灵魂伴侣”是一场骗局? 我们从小就被灌输这样的理念,“寻找灵魂伴侣”、“寻找我们人生的另一半”...

网友评论

    本文标题:【Javascript】寻找另一半

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