2016-04-13 21 views
2

Bu kodu yaklaşık bir saat boyunca ayıklarken Math.min([1,2])NaN döndürüyor.Math.min ([1,2]) neden NaN döndürüyor?

var int_array = [1,2] 
console.log(Math.min(int_array)) //prints NaN, but expect 1 
isNaN(Math.min(int_array))===true 
+0

'console.log (Math.min.apply (Math, [1,2]))' işleri – IrkenInvader

cevap

17

Math.min() işlevi aslında sayı dizisi beklediğini, ancak gerçek bir dizi nasıl bilmez, bu yüzden patlıyor.

kullanarak bunları çözebilirsiniz spread operator...:

var int_array = [1,2]; 
console.log(Math.min.apply(null,int_array)); // returns 1 
4
: Ayrıca aynı şeyi esasen ama güzel değil olurdu Function.apply() fonksiyonu aracılığıyla bunu başarabilir

var int_array = [1,2]; 
console.log(Math.min(...int_array)); // returns 1 

Bir diziyi min işlev

Math.min([1,2]) 
olarak geçirirsiniz argümanlar en az biri bir sayıya dönüştürülür edilemiyorsa MDN

itibaren

, sonuç NaN olur.

0

Bu

var int_array = [1,2]; 
console.log(Math.min.apply(null,int_array)); 

tüm gerçek tarayıcılarda çalışır.