数据组合求值算法挑战
编写函数探取数组[7,9,11,13,15]最佳组合.
根据参数arg最佳组合值来计算,返回所有组合的索引之和。
function pairwise(arr, arg) {
var len = arr.length;
var arr1 =[];
var sum = 0;
var zuHeArr =[];
var oldArr =[];
function isNumber(val) {
var rExp = /\d+/;
if(rExp.test(val)){
return true;
}else{
return false;
}
}
for(var i = 0;i<arr.length;i++){
oldArr.push(arr[i]);
}
for(var i = 0;i<len-1;i++){
for(var j = i+1;j<len;j++){
if(isNumber(arr[i]) && isNumber(arr[j]) && arr[i] + arr[j]===arg){
arr1.push(i);
arr1.push(j);
zuHeArr.push(arr[i]);
zuHeArr.push(arr[j]);
delete arr[i];
delete arr[j];
pd = true;
break;
}
}
}
for(var k = 0;k<arr1.length;k++){
sum += arr1[k];
}
console.log("原始数组: ",oldArr);
console.log("组合数组: ",zuHeArr);
console.log("返回结果: ",sum);
return sum;
}
pairwise([1,4,2,3,0,5], 7);
原始数组: [ 1, 4, 2, 3, 0, 5 ]
组合数组: [ 4, 3, 2, 5 ]
返回结果: 11