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

时间:2019-02-25 20:07:29

标签: javascript arrays ajax switch-statement

我有两个数组,它们在生成时可以相等或比另一个长。

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

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

上图显示这两个数据是相同的timline,但是其中一个大于另一个。

下图是当我将一个特定变量设置为高于另一个变量时的图形。但是,当我将另一个变量设置为更高时,它们等于其他图像所示。 Grahp 2 它可能正盯着我,但我似乎无法弄清楚。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分: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);