2017-02-28 96 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); 
    

你也可以考慮創建並返回一個新陣列而不是變異,返回你收到了同樣的陣列。