将数组推送到多维数组

时间:2016-04-21 09:43:41

标签: javascript arrays multidimensional-array thunderbird thunderbird-addon

我一直在尝试执行以下操作:我创建了一个包含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。

2 个答案:

答案 0 :(得分:1)

这是一个包含单个循环和分组结果对象的提案。

&#13;
&#13;
 --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;
&#13;
&#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

来获取该数组