cari

Rumah  >  Soal Jawab  >  teks badan

javascript - Bagaimana untuk memahami isihan dalam susunan tatasusunan

        var fruit=[7,10,32,6,9,4];
        document.write(fruit+'<br>');
        fruit.sort(sortFun);
        document.write(fruit);
        function sortFun(ar1,ar2){
            if(ar1>ar2){
                return 1;
            }else if(ar1<ar2){
                return -1;
            }else{
                return 0;
            }
        }

Bagaimana kod ini menyusun elemen tatasusunan? Tolong beri saya penjelasan terperinci Terima kasih

PHPzPHPz2744 hari yang lalu613

membalas semua(3)saya akan balas

  • 巴扎黑

    巴扎黑2017-05-19 10:13:03

    Untuk membantu anda memahami, anda boleh cuba memanggil kaedah isihan secara terus:

    var fruit=[7,10,32,6,9,4];
    fruit.sort();

    Hasil yang dikembalikan ialah: [10, 32, 4, 6, 7, 9][10, 32, 4, 6, 7, 9]
    而不是期待中的:[ 4, 6, 7, 9, 10, 32]

    为什么会这样呢?
    因为这是数组原型链上的sort()方法,即Array.prototype.sort()Daripada yang dijangkakan: [4, 6, 7, 9, 10, 32]

    Kenapa ini berlaku?
    Kerana ini ialah kaedah sort() pada rantai prototaip tatasusunan, iaitu, Array.prototype.sort().

    Cara mengkaji kaedah sort() ini secara mendalam:
    1 Anda boleh pergi ke dokumen mdn https://developer.mozilla.org...
    2 Anda boleh pergi ke "Javascript Advanced Programming", tetapi lanjutan design tak lengkap

    3. Cara paling ganas baca spesifikasi ECMA2015: http://www.ecma-international...🎜4 Kalau betul-betul rasa pening kepala, boleh baca blog yang saya tulis tahun lepas dan ulangi 1,2, 3 langkah: http://www.jianshu.com/p/b50a...🎜Semoga ia dapat membantu anda...🎜

    balas
    0
  • 世界只因有你

    世界只因有你2017-05-19 10:13:03

     fruit.sort(sortFun);
    
    sort 数组的排序方法;
     用法:
            var arr=[]; 
            arr.sort(function(a,b){
                
            })
            比如从小到大:
            var arr=[9,5,6]; 
            arr.sort(function(a,b){
                return a-b;
            })
            
           fruit.sort(sortFun);中的sortFun就相当于arr.sort(function(a,b){})
           中的function(a,b){};
           if(ar1>ar2){
                    return 1;
                }else if(ar1<ar2){
                    return -1;
                }else{
                    return 0;
                }就相当于return a-b;

    balas
    0
  • 为情所困

    为情所困2017-05-19 10:13:03

    Anda mungkin memerlukan artikel ini https://developer.mozilla.org...

    balas
    0
  • Batalbalas