Pairwise(待解)

要求

举个例子:有一个能力数组[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。

我们可以通过表格来更直观地查看数组中索引和值的关系:

Index 0 1 2 3 4
Value 7 9 11 13 15

解答

一段百思不得其解的废代码。。。

function pairwise(arr, arg) {
  var num=0;
  var array=arr;
  for(i=0;i=0){
     index=index+i+1;
     index+=i;
     num+=index; 
    }
  } 

  return num;
}

pairwise([1, 3, 2, 4], 4);

正解一:

  function pairwise(arr, arg) {
  var l=arr.length,res=0;
  for(var i=0;i

正解二:

 function pairwise(arr, arg) {
    var a = arr.reduce(function(prev, currv, index, array) {
      var l = array.length;
      for (var i = index + 1; i < l; i++) {
        if (array[index] + array[i] === arg) {
          arr[index] = "false";
          arr[i] = "false";
          return prev + i + index;
        }
      }
      return prev;
    }, 0);
    return a;
  }
pairwise([1,4,2,3,0,5], 7);

你可能感兴趣的:(Pairwise(待解))