Javascript хранить массив максимальной длины в временном массиве - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть два массива, которые при генерации могут быть равны или один длиннее другого.

Мне нужно получить самый длинный массив, если они не равны, и использовать длину для управления циклом.

$.ajax({

    url: "/static/Data/q_learning.json",
    dataType: "json",
    cache: false,
    async: true,
    success: function (data) {

        var data2 = data;
        // console.log(data);
        $.ajax({

            url: "/static/Data/sarsa.json",
            dataType: "json",
            cache: false,
            async: true,
            success: function (data1) {
                var data1 = data1;
                var json_data = data2;
                var json_data1 = data1;

                json_data = json_data[Object.keys(data2)[0]];
                json_data1 = json_data1[Object.keys(data1)[0]];
                var result = [];
                var biggest = [];

                switch (json_data) {
                    case json_data.length > json_data1.length:
                        biggest = json_data;
                        break;
                    case json_data.length < json_data1.length:
                        biggest = json_data1;
                        break;
                    case json_data1.length > json_data.length:
                        biggest = json_data1;
                        break;
                    case json_data1.length < json_data.length:
                        biggest = json_data;
                        break;
                    default:
                        biggest = json_data1;
                }



                console.log(biggest);
                for (var i in biggest)
                    result.push([i, json_data[i], json_data1[i]]);

                console.log(result);

Я включаю один из массивов и проверяю, меньше ли онили больше по длине.Затем присвоение большей длины массива наибольшему временному массиву.

Если они равны, я не думаю, что имеет значение, какой массив назначен, так как они имеют одинаковую длину.

Иногда это работаетно проблема в том, что массив самой большой длины не всегда присваивается самому большому временному массиву.graph

На приведенном выше графике показаны две данные в виде одной и той же временной шкалы, но одна больше другой.

На приведенном ниже рисунке представлен график, когда я задаюодин конкретный вариант выше, чем другой.Но когда я устанавливаю другую переменную выше, они равны, как показано на другом изображении.Grahp 2 Это, вероятно, смотрит мне в лицо, но я не могу понять это.

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 26 февраля 2019

Я понял это.Я получил размер массива на объекте json.

Приведенный ниже код решил эту проблему.

                json_data = json_data[Object.keys(data1)[0]];
                json_data1 = json_data1[Object.keys(data2)[0]];
                var json_data_size = Object.keys(json_data).length;
                var json_data1_size = Object.keys(json_data1).length;
                var result = [];
                var biggest = [];

                if(json_data_size>json_data1_size){
                    biggest = json_data;
                }else if(json_data_size<json_data1_size){
                    biggest = json_data1;
                }else if(json_data_size==json_data1_size){
                    biggest = json_data1;
                }


                console.log(biggest);
                for (var i in biggest)
                    result.push([i, json_data[i], json_data1[i]]);

                console.log(result);
...