javascript - Coderbyte 上的数组加法 I JavaScript 函数

标签 javascript arrays

我正在 Coderbyte 上进行挑战,如果您对我的问题提出任何建议,我将不胜感激:

给我的挑战: “使用 JavaScript 语言,具有函数 ArrayAdditionI(arr) 获取存储在 arr 中的数字数组并返回字符串 true if 数组中任意数字的组合可以相加等于 数组中最大的数字,否则返回字符串 false。 例如:如果 arr 包含 [4, 6, 23, 10, 1, 3] 则输出应为 返回 true,因为 4 + 6 + 10 + 3 = 23。数组不会为空, 不会包含所有相同的元素,并且可能包含负数。 ”

我尝试解决它的方式:http://jsfiddle.net/reLsg0fg/

function ArrayAdditionI(arr){
  var newArr=arr.sort(); // sorted from smallest to largest.
  var largestNum=newArr.slice(-1); // Gets the last number, which would be the largest.
  var loopArr=arr.sort().pop(); // Takes out the largest number for adding later.
  var result=0;

  for(var i=0; i<loopArr.length; i++){ // loops through all numbers.
    if(result/largestNum !== 1){ //when you divide a number by itself it will be 1.
        result+=loopArr[i]; // keep adding each number until get largest number.
    }else if(result === largestNum){
    return true;
    }
  } 
  return false;
}


// TESTS    
console.log("-----");   
console.log(ArrayAdditionI([4,6,23,10,1,3]));    
console.log(ArrayAdditionI([5,7,16,1,2]));   
console.log(ArrayAdditionI([3,5,-1,8,12]));   

我应该得到真、假、真。但我得到了错误、错误、错误,就好像我的循环中出现了问题。 JSFiddle:http://jsfiddle.net/reLsg0fg/

如有任何建议,我将不胜感激。谢谢^^

最佳答案

使用对数组进行排序

arr.sort(function (a, b) { return a - b })

关于javascript - Coderbyte 上的数组加法 I JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34103749/

相关文章:

javascript - 我的网站模板是否包含内置搜索功能?

javascript - 如何在静态codesandbox模板中使用脚本?

javascript - 当使用 element.style = <some CSSStyleDeclaration> 使元素消失

javascript - 字符串长度条件不适用于 webhook

javascript - 使用javascript计算textarea中的字节数

java - 如何从java中同一包中的另一个类访问变量

c++ - 缓存未命中似乎无法正常工作

arrays - 有没有办法自定义 Chapel 中全数组语句的默认并行化行为?

java - 逗号分隔的记录到字符串数组?

arrays - (/值/) 是什么意思? value 是子例程的输入参数