回调函数终止outerloop

Chr*_*mut 1 javascript

var items = ['1', '2', 'callback', '4'];

var testCallback = function (item, items) {
    var outputArray = [];
        if (item == 'callback') {
            for (i = 0; i < items.length; i++) {
            outputArray.push(testCallback('5', items));
            console.log(outputArray);
            };
        } else {
            outputArray.push(item);
        };

    return outputArray.join(',');
};

var testFunction = function (items) {
    var output = '';
    for (i = 0; i < items.length; i++) {
        console.log(i);
          output += testCallback(items[i], items);           
    };

    console.log(output)   
};

testFunction(items);
Run Code Online (Sandbox Code Playgroud)

这是小提琴的例子.

我希望输出为125,5,5,54(5,5,5,5取代'回调').但是,对于语句(在testFunction()中),在'回调'之后终止,并且不进入items []中的最后一项,输出为125,5,5,5.

非常感谢任何帮助.谢谢

Ric*_*ock 5

你的i循环变量是全局的,因此它在两个函数中共享.

更改每个for循环如下:

for (var i = 0; i < items.length; i++) {
Run Code Online (Sandbox Code Playgroud)

小提琴

然后最终输出将按125,5,5,54预期进行.