[英]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.