Javascript 检查数组的和是否大于最大数,反之亦然 函数数组添加(arr){ 变量编号=arr(); var arraySum=“”; 对于(变量i=0;i=最大值; }

Javascript 检查数组的和是否大于最大数,反之亦然 函数数组添加(arr){ 变量编号=arr(); var arraySum=“”; 对于(变量i=0;i=最大值; },javascript,arrays,Javascript,Arrays,我需要找到存储在一个名为arr的数组中的数字,并检查它们的总和是否等于或等于最大的数字,或者它们是否等于最大的数字。如果是,则返回true。如果不是,则返回false 我不确定一开始是否正确调用了数组 谢谢函数数组添加(输入){ arraySum变种,最大值; arraySum=max=input[0]; 对于(变量i=1;i最大值){ 最大值=输入[i]; } }; 返回数组sum>=最大值; } 你的意思是这样的 function ArrayAdditionI(input) {

我需要找到存储在一个名为arr的数组中的数字,并检查它们的总和是否等于或等于最大的数字,或者它们是否等于最大的数字。如果是,则返回true。如果不是,则返回false

我不确定一开始是否正确调用了数组

谢谢

函数数组添加(输入){
arraySum变种,最大值;
arraySum=max=input[0];
对于(变量i=1;i最大值){
最大值=输入[i];
}
};
返回数组sum>=最大值;
} 

你的意思是这样的

function ArrayAdditionI(input) {  
   var arraySum, max;
   arraySum = max = input[0];
   for (var i = 1; i < input.length; i++) {
        arraySum += input[i];
        if(input[i] > max){
           max = input[i];
        }
   };

   return arraySum >= max;          
} 
函数数组添加(arr){
对于(变量i=0,总和=0;ireturn Math.max.apply(Math,arr)我实际上编写了一个库,我只用于这样的函数

你可以这样做:

function ArrayAdditionI(arr) {  

    for (var i = 0, sum=0; i < arr.length; i++) {
        sum += arr[i];
    }

    return Math.max.apply( Math, arr ) <= sum;
}
不过有一个警告。此库对数组对象进行了原型化,这可能会打乱在数组上使用
for(arr中的var i)
的其他脚本,这是您永远不应该做的。实际上,我几乎完成了带有许多新函数的库v2,它不再对数组对象进行原型化

您可以从代码中获取.max()和.sum()方法,如果需要的话,可以在不使用原型的情况下使用它们

var arr = [1,2,3,4,5,300];
if (arr.max() > arr.sum()){
    // Max is greater than sum...
}
maxArray=函数(arr){
返回Math.max.apply(Math,arr);
}
sumArray=函数(arr){
对于(var i=0,length=arr.length,sum=0;i
如果数字为正数,则答案是肯定的-总和始终大于或等于最大值。如果需要计算,ddlshack的代码看起来不错


看看你的代码,有很多问题。首先,
arr()
应该会出错。数组不是函数,尝试将它们视为函数不会有任何作用。传入数组时,数组已经可用。此外,你要将
arraySum
初始化为
0
,而不是
“”
。按照您的操作方式,数组中的值将被强制转换为字符串并连接在一起,这不是您想要的。最后,数组不实现
max()
method,但是
Math
可以,javascript中的函数/方法可以用ddlshack和其他方法显示的方式应用于数组。

存在一些语法错误:键入missmatch、错误赋值和调用不存在的方法。如果我理解您想要做什么,这是正确的代码(如果更改项目顺序不是问题):

函数数组添加(arr){
var-ret=false;
var arraySum=0;
对于(变量i=0;i如果(arr.sort()[arr.length-1]这行怎么了
var arraySum=“”;
为什么总和是字符串?
var arr = [1,2,3,4,5,300];
if (arr.max() > arr.sum()){
    // Max is greater than sum...
}
maxArray = function (arr) {
    return Math.max.apply(Math, arr);
}

sumArray = function (arr) {
    for (var i = 0, length = arr.length, sum = 0; i < length; sum += arr[i++]);
    return sum;
}
function ArrayAdditionI(arr) {  
   var ret = false;
   var arraySum = 0;
   for (var i = 0; i < arr.length; i++) {
        arraySum += arr[i];
   }
   if (arr.sort()[arr.length-1] <= arraySum) {
     ret = true
   }
   return ret;
}