回调和递增变量

时间:2017-01-28 20:09:34

标签: javascript increment

为什么在回调console.logs结果时result = array [0]或1而不是array [1]或2?

    function test(array, callback) {
        var startingIndex = 0;

        var result = array[startingIndex];

        startingIndex++;

        callback(result);

    }

        test([1, 2, 3], function(result) {
            console.log(result);
    });

1 个答案:

答案 0 :(得分:2)

这是因为您在分配startingIndex变量之前递增result变量

你有:

var result = array[startingIndex];
startingIndex++;

交换这两行,您将得到预期的结果:

startingIndex++;
var result = array[startingIndex];