جاوا اسکریپت نمبر مرتب کریں
- پچھلے پیج جس اسکریپٹ آرائیٹم تلاش
- بعد کا پیج جس اسکریپٹ آرائیٹم کا تکرار
sort()
مетод سب سے مضبوط آرائی کا طریقہ میں سے ایک ہے。
آرائی کا آرائی
sort()
مетод کا حروف کی ترتیب سے آرائی کا آرائی کیا جاتا ہے:
مثال
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.sort(); // fruits میں عناصر کو ترتیب دینے کے لئے
آرائیج کو برعکس کرنے کے لئے
reverse()
یہ متد آرائیج میں عناصر کو برعکس ترتیب میں رکھتا ہے。
شما اس کو استفادہ کریں تا آرائیج کو برعکس ترتیب میں تھم کریں:
مثال
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits.sort(); // fruits میں عناصر کو ترتیب دینے کے لئے fruits.reverse(); // عناصر کی ترتیب کو برعکس کرنے کے لئے
اعداد کی ترتیب
بلا خودکار،sort()
فانکشن ترتیب کے بنیاد پر ترتیب دیتا ہےحروفترتیب کی بنیاد پر اعداد کو ترتیب دیتا ہے。
یہ فانکشن کو عمدتاً حروف کا استفادہ کیا جاتا ہے ("Apple" "Banana" سے پہلے رکھا جائے گا).
لیکن اگر اعداد کو حروف کی بنیاد پر ترتیب میں تھم کیا جائے تو "25" "100" سے زیادہ ترتیب میں رکھا جائے گا، کیونکہ "2" "1" سے زیادہ ہے。
اس لئے،sort()
مقابلو کاری کانواین کا متد اعداد کو ترتیب دینے کے دوران غلط نتائج پیدا کرتا ہے。
ہم برائی کا استفادہ کرتے ہیں،نسبتی فانکشناس مسئلے کو برقرار رکھنے کے لئے:
مثال
var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return a - b});
ایک ہی طور پر آرائیج کو برعکس ترتیب میں تھم کریں:
مثال
var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return b - a});
نسبتی فانکشن
مقابلو کاری کانواین کا مقصد ایک دیگر ترتیب کا معین کرنا ہے。
مقابلو کاری کانواین کو منفی، صفر یا مثبت کا بجاء دینا چاہئے، جو پارامتروں پر منحصر ہوتا ہے:
function(a, b){return a-b}
وقتی، sort()
فانکشن دو اعداد کو مقابلو کریں گا، وہ مقابلو کاری کا فانکشن فراہم کرتا ہے، وہ بعد میں اس کی بنیاد پر اعداد کو ترتیب دیتا ہے。
مثال:
وقتی 40 اور 100 کو مقابلو کیا جاتا ہے،sort()
یہ متد کا فراخوان کریں: function(40,100)
یہ فانکشن 40-100 کا محاسبه کرتا ہے، وہ بعد میں -60 (منفی مقدار) واپس کرتا ہے。
ترتیب کانواین کا فانکشن 40 کو 100 سے کم تر ترتیب میں رکھے گا。
شما میتوانید کد قطعه زیر را استفادہ کریں تا عدد و حروف کی ترتیب کا امتحان کریں:
<button onclick="myFunction1()">حروف کی ترتیب میں تھم کریں</button> <button onclick="myFunction2()">سلسلہ اعداد کی ترتیب میں تھم کریں</button> <p id="demo"></p> <script> var points = [40, 100, 1, 5, 25, 10]; document.getElementById("demo").innerHTML = points; function myFunction1() { points.sort(); document.getElementById("demo").innerHTML = points; } function myFunction2() { points.sort(function(a, b){return a - b}); document.getElementById("demo").innerHTML = points; } </script>
ترتیب تصادفی آرایه
مثال
var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return 0.5 - Math.random()});
جستجوی بیشترین (یا کمترین) مقدار آرایه
JavaScript تابع داخلی برای جستجوی بیشترین یا کمترین مقدار در آرایه ارائه نمیدهد.
البته، پس از مرتب کردن آرایه، میتوانید از شاخص برای دریافت بیشترین یا کمترین مقدار استفاده کنید.
ترتیب صعودی:
مثال
var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return a - b}); // حالا points[0] کمترین مقدار را شامل میشود // و points[points.length-1] بیشترین مقدار را شامل میشود
ترتیب نزولی:
مثال
var points = [40, 100, 1, 5, 25, 10]; points.sort(function(a, b){return b - a}); // حالا points[0] بیشترین مقدار را شامل میشود // و points[points.length-1] کمترین مقدار را شامل میشود
اگر تنها به دنبال بیشترین یا کمترین مقدار هستید، مرتب کردن کل آرایه روشی بسیار ناکارآمد است.
برای استفاده از Math.max() روی آرایه استفاده کنید
میتوانید از Math.max.apply
برای جستجوی بیشترین مقدار در آرایه استفاده کنید:
مثال
function myArrayMax(arr) { return Math.max.apply(null, arr); }
Math.max.apply([1, 2, 3])
برابر است با Math.max(1, 2, 3)
。
برای استفاده از Math.min() روی آرایه استفاده کنید
میتوانید از Math.min.apply
برای جستجوی کمترین مقدار در آرایه استفاده کنید:
مثال
function myArrayMin(arr) { return Math.min.apply(null, arr); }
Math.min.apply([1, 2, 3])
برابر است با Math.min(1, 2, 3)
。
روشهای JavaScript من برای Min / Max
最快 راه حل استفاده از روش «خودساخته» است.
این تابع از طریق آرایه میگردد و با استفاده از بیشترین مقدار یافت شده با هر مقدار مقایسه میکند:
مثال (جستجو Max)
function myArrayMax(arr) { var len = arr.length var max = -Infinity; while (len--) { if (arr[len] > max) { max = arr[len]; } } return max; }
این تابع از طریق آرایه میگردد و با استفاده از کمترین مقدار یافت شده با هر مقدار مقایسه میکند:
مثال (جستجو Min)
function myArrayMin(arr) { var len = arr.length var min = Infinity; while (len--) { if (arr[len] < min) { min = arr[len]; } } return min; }
排序对象数组
JavaScript 数组经常会包含对象:
مثال
var cars = [ {type:"Volvo", year:2016}, {type:"Saab", year:2001}, {type:"BMW", year:2010}];
即使对象拥有不同数据类型的属性,sort()
方法仍可用于对数组进行排序。
解决方法是通过比较函数来对比属性值:
مثال
cars.sort(function(a, b){return a.year - b.year});
比较字符串属性会稍复杂:
مثال
cars.sort(function(a, b){ var x = a.type.toLowerCase(); var y = b.type.toLowerCase(); اگر (x < y) {رجعتی کریں -1;} اگر (x > y) {رجعتی کریں 1;} 0 رجعتی کریں; });
- پچھلے پیج جس اسکریپٹ آرائیٹم تلاش
- بعد کا پیج جس اسکریپٹ آرائیٹم کا تکرار