2017-02-28 174 views
-6

我试图从数组中获取最小值而不改变值的对齐方式。从数组中获取最小值

function removeSmallest(numbers){ 
var min=Math.min.apply(null,numbers); 
var indexvalue=numbers.indexOf(min); 
delete numbers[indexvalue]; 
return numbers; 
} 
+4

欢迎来到Stack Overflow!请参考[游览],环顾四周,并阅读[帮助],特别是[*我如何提出一个好问题?](/ help /如何问) –

+0

*寻求调试帮助的问题(“为什么这个代码不工作?”)必须包含所需的行为,特定的问题或错误以及在问题本身中重现问题所需的最短代码。没有明确问题陈述的问题对其他读者无益。* – BSMP

回答

1

两个问题:

  1. Math.min.apply(null, numbers)应该Math.min.apply(Math, numbers)(注意Math而不是null

  2. 通常情况下,delete不是阵列(见this question's answers for details合适的工具;使用splice来删除阵列条目,如果你要修改阵列:

    numbers.splice(indexvalue, 1); 
    

你也可以考虑创建并返回一个新阵列而不是变异,返回你收到了同样的阵列。