[英]Can't get inside my for loop (Javascript)
I am trying to iterate over the variable pieces
, but somehow it is not triggering. 我正在尝试遍历可变pieces
,但是不知何故,它不会触发。 In the function below, pieces.length
turns 4, but piecesNew
turns []
- moreover console.log(i)
is never reached. 在下面的函数中, pieces.length
变为4,但是piecesNew
变为[]
-而且从未到达console.log(i)
。
What is happening? 怎么了?
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
is not less than or greater than any number. undefined
不小于或大于任何数字。
var i; // undefined
i < 10; // false
i > 10; // false
You simply need to make sure i
is equal to 0
. 您只需要确保i
等于0
。
You also want i
to never be equal to pieces.length
so use <
instead of <=
(the last index of an array is always length - 1
, eg an array of length 3 has indexes 0, 1 and 2 – the first index is always 0, not 1) 您还希望i
永远不等于pieces.length
所以请使用<
而不是<=
(数组的最后一个索引始终为length - 1
,例如,长度为3的数组具有索引0、1和2 –第一个索引为始终为0,而不是1)
So: 所以:
for (var i = 0; i < pieces.length; i++) {
...
define value for variable i, var i = 0
定义变量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;
};
Change: 更改:
for (var i; i <= pieces.length; i++)
To: 至:
for (var i = 0; i < pieces.length; i++)
Initialize var i = 0 initially then it will work 首先初始化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.