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);
以下是fiddle示例。
我希望输出为125,5,5,54(5,5,5,5取代'回调')。但是for语句(在testFunction()中)在'callback'之后终止,并且不继续到items []中的最后一项,输出是125,5,5,5。
非常感谢任何帮助。感谢
答案 0 :(得分:5)
您的i
循环变量是全局的,因此它在两个函数中共享。
按如下方式更改每个for
循环:
for (var i = 0; i < items.length; i++) {
根据预期,最终输出为125,5,5,54
。