javascript中带有空主体的For循环-有更好的方法吗?

javascript中带有空主体的For循环-有更好的方法吗?,javascript,userscripts,Javascript,Userscripts,我有这样一个代码: var ccode = [ ["de", "de", ".de.example.com"], ["uk", "uk", ".uk.example.com"], ["uk", "nl", ".nl.example.com"], ["pl", "pl", ".pl.example.com"] ]; var lng; var gamepage; var reg; var gamepages = {} { var i; for (i =

我有这样一个代码:

var ccode = [
    ["de", "de", ".de.example.com"],
    ["uk", "uk", ".uk.example.com"],
    ["uk", "nl", ".nl.example.com"],
    ["pl", "pl", ".pl.example.com"]
];
var lng;
var gamepage;
var reg;
var gamepages = {}
{
    var i;
    for (i = 0; i < ccode.length && !(document.location.href.search(ccode[i][1] + ".example.com") != -1); i++) {}
    lng = ccode[i][0];
    gamepage = ccode[i][2];
    reg = new RegExp("http://s(\\d+)\\." + ccode[i][1] + "\\.example\\.com/(.*?)\\.php(.*)", "i");
    gamepages[ccode[i][1]] = "http://www" + ccode[i][2];
}
var-ccode=[
[“de”,“de”,“.de.example.com”],
[“uk”、“uk”、“.uk.example.com”],
[“英国”、“荷兰”、“.nl.example.com”],
[“pl”、“pl”和“.pl.example.com”]
];
乏液化天然气;
var-gamepage;
var-reg;
var gamepages={}
{
var i;
对于(i=0;i
它有效,但是。。看起来像垃圾,有更好的方法吗?如果您需要背景,它会在页面的URL地址中查找“de”或“en”,并设置变量以更改语言


谢谢你的帮助

您想对
ccode
上的每个项目都做些什么,对吗
for
就意味着有很多样板。。。试试
[].forEach()


这就是我解决问题的方法。避免了For循环,并且意图明确。

您可以在
循环中使用
For。对数组使用
for…in
循环只会迭代数组的可枚举属性

然后我将使用
match
来测试url,因为您可以使用
从结果可靠地强制一个布尔值

我添加了一个默认数组选项,否则它将使用迭代的最后一个项,即使没有匹配的项。这样,如果没有匹配的项,您可以显式地告诉脚本停止(或以其他方式处理该条件)

此外,还有一些正则表达式简化

var lng,gamepage,reg,gamepage={}
变量代码=[
[“de”,“de”,“.de.example.com”],
[“uk”、“uk”、“.uk.example.com”],
[“英国”、“荷兰”、“.nl.example.com”],
[“pl”、“pl”、“.pl.example.com”],
[“”,“”,“”]//默认为在未找到任何内容时发出信号。
];
//循环阵列测试位置,如果匹配,则中断循环
对于(ccode中的var i)!!location.href.match(ccode[i][1]+'.example.com')&&break;
如果(!ccode[i][0])返回;//如果什么也没找到,现在就停下来。
lng=ccode[i][0];
gamepage=ccode[i][2];
reg=newregexp(“http://s(\\d+)。+ccode[i][1]+”.example.com/([^.]+).php(.*),“i”);
游戏页面[ccode[i][1]=”http://www“+ccode[i][2];
var ccode = [
    ["de", "de", ".de.example.com"],
    ["uk", "uk", ".uk.example.com"],
    ["uk", "nl", ".nl.example.com"],
    ["pl", "pl", ".pl.example.com"]
];

ccode.forEach(function(c) {
    // c will be ["de", "de", ".de.example.com"] at first, and so on...

    if ((document.location.href.search(c + ".example.com") != -1)) return;

    console.log(c)
})
ccode.forEach(function(code){
    if(document.location.href.search(code[1] + "example.com"){
        lng = code[0];
    }
});