奇怪的循环在JavaScript中

时间:2017-05-30 08:45:34

标签: javascript loops for-loop syntax

我在javascript中有一个帮助类,我必须像这样使用

menu
     .createMenu("TestMenu", "Description")
    .addMenuItem("test", "", true, true, "callServerTrigger", 
"testServerEvent")
.addMenuItem("test", "", true, true, "callServerTrigger", "testServerEvent")
.addMenuItem("test", "", true, true, "callServerTrigger", "testServerEvent")
.addMenuItem("test", "", true, true, "callServerTrigger", "testServerEvent")
   .addCloseButton();

但我必须在这里使用for循环。

menu
     .createMenu("TestMenu", "Description")
    for (var i = 0; i < arr.length; i++) {
        .addMenuItem(arr[i], "", true, true, "callServerTrigger", "testServerEvent")
    }
   .addCloseButton();

我尝试了这个但是“。”给出了语法错误。我该怎么做?

2 个答案:

答案 0 :(得分:3)

您可以使用变量来保留链接对象。

var temp = menu.createMenu("TestMenu", "Description");
for (var i = 0; i < arr.length; i++) {
    temp = temp.addMenuItem(arr[i], "", true, true, "callServerTrigger", "testServerEvent");
}
temp.addCloseButton();

或者使用Array#reduce,其中返回值保留链式对象。

arr.reduce(function (r, a) {
    return r.addMenuItem(a, "", true, true, "callServerTrigger", "testServerEvent");
}, menu.createMenu("TestMenu", "Description")).addCloseButton();

答案 1 :(得分:-1)

另外,如果你的arr-array中没有任何东西。开头的长度为0,可能导致错误。