Сортировать многомерный массив по определенному порядку - PullRequest
0 голосов
/ 25 августа 2018

Я довольно долго думал о том, как отсортировать мой массив в Javascript, как я хочу, пробуя различные методы, и я не могу найти решение, поэтому я решил спросить здесь ... Итак, в двух словах, мой массив выглядит так же сложно, как это:

var englishvoc = new Array();

englishvoc[0] = new Array();
englishvoc[0][0] = "beautiful";
englishvoc[0][1] = new Array();
englishvoc[0][1][0] = 0;
englishvoc[0][2] = 2;

englishvoc[1] = new Array();
englishvoc[1][0] = "nice";
englishvoc[1][1] = new Array();
englishvoc[1][1][0] = 0;
englishvoc[1][2] = 2;

englishvoc[2] = new Array();
englishvoc[2][0] = "get";
englishvoc[2][1] = new Array();
englishvoc[2][1][0] = 9;
englishvoc[2][1][1] = 7;
englishvoc[2][1][2] = 2;
englishvoc[2][2] = 1;

Я хочу, чтобы этот массив был отсортирован только по английскому слову, чтобы их порядок стал «красивым», «полученным», «хорошим» при перемещении всех первых измерений массива. Результат должен быть:

alert(englishvoc) //Returns: '"beautiful",0,2,"get",9,7,2,1,"nice",0,2'

Кроме того, было бы здорово, если бы эта система сортировки не учитывала регистр символов ... Может быть, у кого-то есть решение для такой сложной сортировки массивов? Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 25 августа 2018
To me it looks like you are trying to represent an object array as multi dimensional array.  I think you should be able to represent like below.  


[{
    name:  "beautiful";
    data: {
            val1: [0]
            val2: [1]
        }
    },
    {
    name:  "nice";
    data: {
            val1: [0]
            val2: [1]
        }
    },
    {
    name:  "get";
    data: {
            val1: [9]
            val2: [7,2]
        }
}]

Этот массив объектов должен легко сортироваться.

0 голосов
/ 25 августа 2018

Вы можете попробовать sort () и localeCompare ()

var englishvoc = new Array();

englishvoc[0] = new Array();
englishvoc[0][0] = "beautiful";
englishvoc[0][1] = new Array();
englishvoc[0][1][0] = 0;
englishvoc[0][2] = 2;

englishvoc[2] = new Array();
englishvoc[2][0] = "nice";
englishvoc[2][1] = new Array();
englishvoc[2][1][0] = 0;
englishvoc[2][2] = 2;

englishvoc[7] = new Array();
englishvoc[7][0] = "get";
englishvoc[7][1] = new Array();
englishvoc[7][1][0] = 9;
englishvoc[7][1][1] = 7;
englishvoc[7][1][2] = 2;
englishvoc[7][2] = 1;



englishvoc.sort((a,b)=>a[0].localeCompare(b[0]))

console.log(englishvoc.join())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...