在Javascripts中将对象插入数组会引发未捕获的TypeError
我正在创建pos对象并将其插入数组中 下面是非常好的代码。在Javascripts中将对象插入数组会引发未捕获的TypeError,javascript,Javascript,我正在创建pos对象并将其插入数组中 下面是非常好的代码。 var pos1={lat:25,long:56}; var pos2={lat:100,long:200}; var pos3={lat:-63,long:-29}; var objects=[]; objects.push(pos1); objects.push(pos2); objects.push(pos3); console.log(objects[0].lat+","+objects[0].long); console.lo
var pos1={lat:25,long:56};
var pos2={lat:100,long:200};
var pos3={lat:-63,long:-29};
var objects=[];
objects.push(pos1);
objects.push(pos2);
objects.push(pos3);
console.log(objects[0].lat+","+objects[0].long);
console.log(objects[1].lat+","+objects[1].long);
console.log(objects[2].lat+","+objects[2].long);
输出
然后,我尝试在循环中插入一些使用随机数的对象。正是在这一点上,它产生了错误
未捕获类型错误:当Pos对象在循环之外时
var locations=[];
var pos={lat:0,long:0}; //Here post object is outside the loop
size=10;
for(var i=1;i<=size;i++){
var x=Math.floor(1+Math.random()*10);
var y=Math.floor(1+Math.random()*10);
pos.lat=x;
pos.long=y;
locations.push(pos);
}
for(var i=1;i<=size;i++){
console.log(locations[i].lat+","+locations[i].long);
}
var locations=[];
size=10;
for(var i=1;i<=size;i++){
var pos={lat:0,long:0}; //pos object inside the loop
var x=Math.floor(1+Math.random()*10);
var y=Math.floor(1+Math.random()*10);
pos.lat=x;
pos.long=y;
locations.push(pos);
}
for(var i=1;i<=size;i++){
console.log(locations[i].lat+","+locations[i].long);
}
var位置=[];
var pos={lat:0,long:0}//这里,post对象在循环之外
尺寸=10;
对于(var i=1;ii
应该从0
开始,如下所示:
for(var i=0;i < size;i++){
console.log(locations[i].lat+","+locations[i].long);
}
for(变量i=0;i
由于数组
索引从零开始
并以小于其大小的1结束。在编程中,数组索引从零开始
因此,当大小为5时,例如索引为0、1、2、3、4..查看最后一个索引是如何为4
在你的例子中,你迭代到数组索引从0开始,所以i
必须从0开始,并且应该只从开始。你没有考虑数组索引从零开始。谢谢@charlietfl,我真的很失望,我没有意识到………这些是最基本的。。。。。。。。。。。。。。。