Bu denedim budur:Javascript'te bir dizinin içindeki min öğelerini nasıl alabilirim?
Math.min([1,2,3])
Ama sadece NaN
olsun ...
Bu denedim budur:Javascript'te bir dizinin içindeki min öğelerini nasıl alabilirim?
Math.min([1,2,3])
Ama sadece NaN
olsun ...
kullanım apply
:
Math.min.apply(null,[1,2,3]); //=> 1
Bu durumda, ilk değişken (boş nedenle) bir önem taşımaktadır. Yani burada kullanılan 'hile'.
Function.apply(thisArg[, argArray])
yöntemini uygulamak Bir işlevi çağırmak ve anahtar kelime bu kapsamda başvurmak ne belirlemenizi sağlar Bu fonksiyonun . BuArg argümanı bir obje olmalıdır. çağrısında, çağrılan işlev bağlamında, bu, buArg. Başvuru yönteminin ikinci argümanı bir dizisidir. Bu dizinin öğeleri, çağrılan işlevine argümanlar olarak geçirilecektir. ArgArray parametresi, bir dizinin değişkeni ya da bir işlevin artık kullanılmayan bağımsız değişkenleri özelliği olabilir. DiziMath.min
argüman olarak geçirilen için, ikinci,:
bunu (bu durumda bir sayı veya NaN
değil budur) bir dizi kaçırmak yok, sadece geçmesi Bu fonksiyona argümanlar olarak numaraları. Şunun gibi: yana
Math.min(1, 2, 3)
Ama var o zaman .. Bir dizide –
@compile bu unsurları geçmesine vbence anlaşılacağı gibi bir şey kullanmak. –
@ compile-fan: Neden zorundasınız? Fonksiyon, bir dizi değil argüman olarak sayıları bekliyor. Eğer bir diziyi bir işleve iletmeniz gerekiyorsa, dizininin elemanları ile Math.min() 'i çağırmadan önce bir dizi alan ve onu parçalayan Math.min()' için bir sarmalayıcı yazabileceğinizi varsayalım. (Ve tüm sayıların olduklarından emin olmak için girişi kontrol eder.) – David
Dizi ile yineleme gerekiyor. AFAIK'de JS'de array_min
yoktur.
var i, min = arr[0];
for (i=1; i<arr.length; i++)
min = Math.min(min, arr[i]);
bunu kullanın
Array.min = function(array){
return Math.min.apply(Math, array);
};
Kontrol bu bağlantıyı dışarı - http://ejohn.org/blog/fast-javascript-maxmin/
Bu en basit çözümdür, ancak nasıl çalışır? –
+1 Gerçekten hoş olanı. – vbence