Javascript 循环代码 returns 'undefined'
Javascript looping code returns 'undefined'
我正在尝试创建一个函数(称为 difference),该函数将找出数字数组的总和与(其最大值 * 数组中的项目数)之间的差值。我尝试了以下方法,但它一直返回未定义!有帮助吗?
function difference(randomArray){
var origSum = function () {
var sum = 0;
for (var i = 0; i < randomArray.length; i++ ) {
sum += randomArray[i]
};
return sum;
};
var maxi = function () {
var max = 0
for (var x = 0; x < randomArray.length; x++) {
if (randomArray[x] > max) {
max = randomArray[x]
};
};
return max;
};
var sum = function () {
return ((maxi * randomArray.length) - origSum)
};
if (randomArray.length <= 1) {
return (1 - 2)
}
else {
return sum
};
};
maxi、origSum 和 sum 是函数。你需要这样称呼它们,包括括号。
function difference(randomArray){
var origSum = function () {
var sum = 0;
for (var i = 0; i < randomArray.length; i++ ) {
sum += randomArray[i]
};
return sum;
};
var maxi = function () {
var max = 0; // What if all array values are negative?
for (var x = 0; x < randomArray.length; x++) {
if (randomArray[x] > max) {
max = randomArray[x]
};
};
return max;
};
var sum = function () {
return ((maxi() * randomArray.length) - origSum()) // < here
};
if (randomArray.length <= 1) {
return (1 - 2) // This is weird ?
}
else {
return sum(); // < and here
};
};
顺便说一句,还有一些缺点。如果数组中的所有值都是负数,maxi 将 return 0 而不是最大值。最后,return (1 - 2)
总是 return -1,而如果数组包含 1 个项目,您可能想要 return 唯一的数组值。
在您的 sum
函数中,您试图将一个函数乘以另一个函数,您必须实际调用这些函数,并在脚本末尾调用 sum
函数:
var sum = function () {
return ((maxi() * randomArray.length) - origSum())
};
并且:
return sum();
我正在尝试创建一个函数(称为 difference),该函数将找出数字数组的总和与(其最大值 * 数组中的项目数)之间的差值。我尝试了以下方法,但它一直返回未定义!有帮助吗?
function difference(randomArray){
var origSum = function () {
var sum = 0;
for (var i = 0; i < randomArray.length; i++ ) {
sum += randomArray[i]
};
return sum;
};
var maxi = function () {
var max = 0
for (var x = 0; x < randomArray.length; x++) {
if (randomArray[x] > max) {
max = randomArray[x]
};
};
return max;
};
var sum = function () {
return ((maxi * randomArray.length) - origSum)
};
if (randomArray.length <= 1) {
return (1 - 2)
}
else {
return sum
};
};
maxi、origSum 和 sum 是函数。你需要这样称呼它们,包括括号。
function difference(randomArray){
var origSum = function () {
var sum = 0;
for (var i = 0; i < randomArray.length; i++ ) {
sum += randomArray[i]
};
return sum;
};
var maxi = function () {
var max = 0; // What if all array values are negative?
for (var x = 0; x < randomArray.length; x++) {
if (randomArray[x] > max) {
max = randomArray[x]
};
};
return max;
};
var sum = function () {
return ((maxi() * randomArray.length) - origSum()) // < here
};
if (randomArray.length <= 1) {
return (1 - 2) // This is weird ?
}
else {
return sum(); // < and here
};
};
顺便说一句,还有一些缺点。如果数组中的所有值都是负数,maxi 将 return 0 而不是最大值。最后,return (1 - 2)
总是 return -1,而如果数组包含 1 个项目,您可能想要 return 唯一的数组值。
在您的 sum
函数中,您试图将一个函数乘以另一个函数,您必须实际调用这些函数,并在脚本末尾调用 sum
函数:
var sum = function () {
return ((maxi() * randomArray.length) - origSum())
};
并且:
return sum();