Javascript存储临时数组中最高长度的数组

问题描述 投票:0回答:1

我有两个数组,生成时可以比另一个更长或更长。

如果它们不相等,我需要获得最长的数组并使用长度来控制循环。

$.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

上图显示两个数据为同一时间轴,但一个比另一个大。

下图是当我将一个特定的varibale设置为高于另一个时的图形。但是当我将另一个变量设置得更高时,它们就像另一个图像所示的那样相等。 Grahp 2它可能盯着我的脸,但我似乎无法弄明白。

任何帮助将不胜感激。

javascript arrays ajax switch-statement
1个回答
0
投票

我已经明白了。我在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);
© www.soinside.com 2019 - 2024. All rights reserved.