我一直在尝试以下操作:我创建了一个包含URL列表的数组,这些URL来自于我的选定电子邮件,并且已经去重。我想按提供商对这些URL进行多维数组排序。我一直在搜索和尝试不同的方法,但无法使其工作...
代码似乎在 push 之后停止,因为数组 providers[0][0] 未定义。Thunderbird 似乎没有添加一个新的 y 数组
我该如何让这段代码工作,以便
同时,如果我想获取最大的 [y] 数组,唯一的方法是使用
有没有其他方法使
希望你能再次为我指明正确的道路,这个问题让我发疯,因为它没有按我想要的方式工作;)
提前感谢。
问候ProphecyNL。
我想创建一个多维数组,看起来像providers[z][y]
,其中[z]
包含邮件来源的提供商列表,[y]
是包含来自provider[z]
的URL列表的数组。
我尝试以多种方式声明数组providers:var providers = [ [], [], [] ];
(还添加了更多括号,只是为了确保列表中所有URL都有足够的位置), var providers = [];
, var providers = {};
等等。
我编写的代码如下:
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]);
}
代码似乎在 push 之后停止,因为数组 providers[0][0] 未定义。Thunderbird 似乎没有添加一个新的 y 数组
providers[pos1] = providers[pos1] || [];
。我该如何让这段代码工作,以便
provider[z][y]
包含来自 provider[z]
的 URL?同时,如果我想获取最大的 [y] 数组,唯一的方法是使用
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;
}
}
有没有其他方法使
b
运行到provider[a][b]
的长度,而不是上面的解决方案运行99次或直到中断?希望你能再次为我指明正确的道路,这个问题让我发疯,因为它没有按我想要的方式工作;)
提前感谢。
问候ProphecyNL。
urlarray
的数组中,它看起来像这样var urlarray = ['url1','url2',等等]
。如果可能的话,我想像providers [provider] [url]
一样访问它们。 - ProphecyNLurl1
。它看起来像example.com
吗? - Nina Scholzhttps://www.example.com/sub/somepage.php
。我只是将其拆分以获取提供者并将其用作ID。我从ProviderA、ProviderB等处收到多封电子邮件,并希望将来自ProviderA的所有链接链接到该数组。 - ProphecyNL