无法进入我的for循环(Javascript)

Joh*_*ews 1 javascript

我试图迭代变量pieces,但不知何故它没有触发.在下面的函数中,pieces.length转4,但piecesNew转弯[]- 而且console.log(i)永远不会到达.

怎么了?

self.reworkPieces = function(pieces) {

        var piecesNew = [];

        console.log(pieces.length)

        for (var i; i <= pieces.length; i++) {

            console.log(i)

            piecesNew[i] = {
                c: pieces[i].r,
                r: pieces[i].c,
                p: i
            }

        }

        console.log(piecesNew)

        return piecesNew;

    }; 
Run Code Online (Sandbox Code Playgroud)

MMM*_*MMM 7

undefined小于大于任何数字.

var i; // undefined
i < 10; // false
i > 10; // false
Run Code Online (Sandbox Code Playgroud)

你只需要确保i等于0.

你也希望i永远不等于pieces.length使用<而不是<=(数组的最后一个索引总是如此length - 1,例如长度为3的数组有索引0,1和2 - 第一个索引总是0,而不是1)

所以:

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