【发布时间】:2019-07-13 14:43:26
【问题描述】:
需要从数组中删除最高和最低的数字并将剩余的数字相加。 (重复值可以保留,例如 [2, 2, 3, 5, 8] 只删除 2 一次。)
创建 2 个单独的最小值和最大值,然后从数组总数中减去它们。
当数组为空时也应该返回0?
通过了一些测试,但看不出为什么它没有通过上面指定的所有标准?
function sumArray(array)
{
var sum = 0;
var min = Math.min(...array); // lowest in array by spreading
var max = Math.max(...array); // highest in array by spreading
if(array === null)
{
return 0;
}
for (var i = 0; i < array.length; i++ )
{
(sum += array[i]);
}
return ((sum - max) - min);
}
【问题讨论】:
-
实际上没有通过哪些标准?
-
如果数组中的最大值或最小值出现多次,您的代码将无法工作。您应该将
array[i]与min和max进行比较,如果这两个值都不是,则仅将其添加到sum。 -
显然您可以在代码中使用任何形式的大括号放置和缩进,但是请在询问时不要使用上述样式求助。 (即使不寻求帮助,我也强烈建议不要使用它。)将结尾
}放在块中最后一行的末尾会使其难以阅读并且难以移动代码。 Here's your code in a fairly standard style. -
^^ 也应该是答案的样式指南...
-
@TheWitness 传递了几乎所有数组类型,但偶尔会在它期望为 0 但得到 NaN 时失败。
标签: javascript arrays