function ArrayAdditionI(arr) {
var numbers = arr();
var arraySum = "";
for (var i = 0; i < numbers.length; i++) {
arraySum = arraySum + arr[i];
};
if (numbers.max() <= arraySum) {
arr = true
}
else if (numbers.max() > arraySum) {
arr = false;
}
return arr;
}
我需要找到存储在名为 arr 的数组中的数字,并检查它们的总和是否等于最大数字,或者是否不是。如果是,则返回 true。如果不是,则返回 false。
我不确定一开始是否正确调用了数组。
谢谢
最佳答案
我实际上编写了一个库,仅用于此类功能。
http://code.google.com/p/pseudosavant/downloads/detail?name=psMathStats.min.js
你只需这样做:
var arr = [1,2,3,4,5,300];
if (arr.max() > arr.sum()){
// Max is greater than sum...
}
不过有一个警告。这个库原型(prototype)化了 Array 对象,它可能会搞乱在 Array 上使用 for (var i in arr)
的其他脚本,而你永远不应该这样做。实际上,我几乎已经完成了该库的 v2 版本,其中包含许多新函数,并且它不再是 Array 对象的原型(prototype)。
您可以从代码中获取 .max() 和 .sum() 方法,如果需要的话,可以在不进行原型(prototype)设计的情况下使用它们。
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;
}
关于javascript - 检查数组的总和是否大于最大数,反之亦然 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9136942/