簡體   English   中英

無法進入我的for循環(JavaScript)

[英]Can't get inside my for loop (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;

    }; 

undefined小於大於任何數字。

var i; // undefined
i < 10; // false
i > 10; // false

您只需要確保i等於0

您還希望i永遠不等於pieces.length所以請使用<而不是<= (數組的最后一個索引始終為length - 1 ,例如,長度為3的數組具有索引0、1和2 –第一個索引為始終為0,而​​不是1)

所以:

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

定義變量i的值, var i = 0

self.reworkPieces = function(pieces) {

        var piecesNew = [];

        console.log(pieces.length)

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

            console.log(i)

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

        }

        console.log(piecesNew)

        return piecesNew;

    }; 
self.reworkPieces = function(pieces) {

    var piecesNew = [];

    console.log(pieces.length)

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

        console.log(i)

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

    }

    console.log(piecesNew)

    return piecesNew;

}; 

更改:

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

至:

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

首先初始化var i = 0,然后它將起作用

self.reworkPieces = function(pieces) {

            var piecesNew = [];

            console.log(pieces.length)

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

                console.log(i)

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

            }

            console.log(piecesNew)

            return piecesNew;

        }; 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM