我有两个数组,生成时可以比另一个更长或更长。
如果它们不相等,我需要获得最长的数组并使用长度来控制循环。
$.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);
我正在打开其中一个阵列并检查它是否更小或更长。然后将较大的数组长度分配给最大的临时数组。
如果它们相等,我认为分配哪个数组并不重要,因为它们的长度都相同。
有时它可以工作,但我遇到的问题是最大的长度数组并不总是分配给最大的临时数组。
上图显示两个数据为同一时间轴,但一个比另一个大。
下图是当我将一个特定的varibale设置为高于另一个时的图形。但是当我将另一个变量设置得更高时,它们就像另一个图像所示的那样相等。 它可能盯着我的脸,但我似乎无法弄明白。
任何帮助将不胜感激。
我已经明白了。我在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);