جاوا اسکریپت نمبر مرتب کریں

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 رجعتی کریں;
});

خود کا ایک تجربہ کریں