我一直在尝试执行以下操作:我创建了一个包含URL列表的数组,从我选择的电子邮件中提取,并且已经过滤掉了双精度数据。我想在多维数组中对提供程序上的这些URL进行排序。我一直在寻找和尝试不同的方法,但无法让它工作......
我想创建一个看起来像providers[z][y]
的多维数组,其中[z]
包含邮件来自的提供者列表,[y]
是包含来自{{的URL列表的数组1}}。
我尝试以多种方式声明数组提供程序:provider[z]
(还添加了更多括号,以确保列表中的所有网址都足够),var providers = [ [], [], [] ];
,{{1}还有一些变化。
我创建的用于对它们进行排序的代码如下所示:
var providers = [];
代码似乎在推送后停止,因为数组提供程序[0] [0]未定义。 Thunderbird似乎没有使用var providers = {};
添加新的y数组。
如何使此代码正常工作, for (var y = 0; y < urlarray.length; y++) {
var pos1;
provider = urlarray[y].split(".")[1];
if (providers.indexOf(provider) === -1) {
providers.push(provider);
}
pos1 = providers.indexOf(provider);
providers[pos1] = providers[pos1] || []; // should add an array???
providers[pos1].push(urlarray[y]);
}
包含来自providers[pos1] = providers[pos1] || [];
的网址?
作为第二个问题,如果我想获得最大的[y]数组,是唯一可以使用provider[z][y]
语句来计算所有对象并比较每个提供者最大数字或者数据的方法。有没有更短的方法来完成这项工作?我将如何执行此操作:
provider[z]
还有另一种方法可以让for
运行到 var biggestarray = 0;
for (var a = 0; a < providers.length; a++) {
var counter = 0;
for (var b = 0; b < 99; b++) { // kept it much bigger then needed
if (provider[a][b] != undefined) {
counter = b + 1;
} else break;
}
if (biggestarray < counter) {
biggestarray = counter;
}
}
的长度,而不是上面运行99次的解决方案或直到休息时间吗?
希望你能再次让我走上正确的道路,为此疯狂,不按我的意愿行事;)
提前致谢。
Greets ProphecyNL。
答案 0 :(得分:1)
这是一个包含单个循环和分组结果对象的提案。
--connect-timeout=CONNECT_TIMEOUT
Specify the connection timeout in seconds (default: 5
seconds).
--request-timeout=REQUEST_TIMEOUT
Specify the default request timeout in seconds
(default: 10 seconds).
&#13;
答案 1 :(得分:0)
我想在多维数组
中对提供者上的这些URL进行排序
要对所有提供商的网址进行排序,请尝试
List<string> list3 = list1;
foreach (string d in list2) { list3.Remove(d); }
List<string> list4 = list2;
foreach (string d in list1) { list4.Remove(d); }
获取具有最大数组的提供者索引
providers.forEach(function(urlArr){
urlArr.sort();
});
现在,提供商的索引具有最大数组var biggestArrayIndex = -1;
var biggestArrayLength = 0;
providers.forEach(function(value, index){
if (value.length > biggestArrayLength )
{
biggestArrayLength = value.length;
biggestArrayIndex = index;
}
})
。您可以通过执行 - biggestArrayIndex