Maison  >  Questions et réponses  >  le corps du texte

Problème de tri de tableau bidimensionnel JavaScript

[['10','8'],['11','4'],['18','7'],['7','6'],['8','7'],['9','5']]

JavaScript Comment créer un tableau comme celui-ci
[['7','6'],['8','7'],['9','5'],['10','8'] , ['11','4'],['18','7']]
organisés dans cet ordre

Grand Dieu

仅有的幸福仅有的幸福2686 Il y a quelques jours719

répondre à tous(4)je répondrai

  • 我想大声告诉你

    我想大声告诉你2017-06-12 09:29:27

    array = [['10','8'],['11','4'],['18','7'],['7','6'],['8',' 7'],['9','5']]
    function sortNumber(a,b){return a[0]-b[0]}
    let newArray = array.sort(sortNumber)

    newArray devrait être le résultat que vous souhaitez

    répondre
    0
  • 代言

    代言2017-06-12 09:29:27

    var arr = [['10','8'],['11','4'],['18','7'],['7','6'],['8','7'],['9','5']]
    arr.sort(function(a, b) {
        return a[0]-b[0]
    })

    répondre
    0
  • PHP中文网

    PHP中文网2017-06-12 09:29:27

    Le résultat de votre disposition de tableau bidimensionnel semble être comparé au premier élément en indice de chaque élément du tableau (tableau). Alors ce serait mauvais s'il était converti en un tableau unidimensionnel et trié. Le tableau unidimensionnel est trié, puis le tableau bidimensionnel d'origine est trié à l'aide d'un index pour correspondre au tableau unidimensionnel précédent.
    Idée d'implémentation logique :
    var twoArray = [['10','8'],['11','4'],['18','7'],['7','6'], ['8','7'],['9','5']];

        var oneArray = [];
        twoArray.map(function (item ,index) {
            oneArray.push({value: item[0], index: index});
        });
        console.log(oneArray);
        function sortNumber (a, b) {
            return a.value - b.value;
        }
        console.log(oneArray.sort(sortNumber));
        // 此时的oneArray已排好序
        var newTwoArray = [];
        oneArray.map(function (item) {
            newTwoArray.push(twoArray[item.index]);
        });
        console.log(newTwoArray);// 即你要的排序

    répondre
    0
  • 黄舟

    黄舟2017-06-12 09:29:27

    var groupNum = 3;
    
    var arr1 = [['10','8'],['11','4'],['18','7'],['7','6'],['8','7'],['9','5']];
    
    var arr2 = [];
    
    for (var i = arr1.length; i > 0 ; i -= groupNum) {
      arr2.push(arr1.slice(i - groupNum, i));
    }
    
    console.log(arr2) // [['7','6'],['8','7'],['9','5'],['10','8'],['11','4'],['18','7']]

    répondre
    0
  • Annulerrépondre