现在的位置: 首页 > 综合 > 正文

数组上面犯的错误

2013年12月08日 ⁄ 综合 ⁄ 共 763字 ⁄ 字号 评论关闭

      1.

          code:



function  Person(name, age) {

	this.name = name;
	this.age  = age;
	
}

var array = new Array();	
var i;


for ( i=0; i < 4; i++ ) {

	var person = new Person ("i", i);
	print(person.name);
	array.push(person);
	print(array[i].name);//为啥这边输出的是undifined呢

}

for ( i=0; i < 4; i++ ) {
	print(i + ":" + array[i].name);	
	print("----------");
}



原因:

            var array = new Array (4);  // 此时数组中的值被初始化为 undefined

            for( var i = 0; i  < 4; i++ ) {

                       var person = new Perspn(name, age);

                       array.push(person);           // 此时是在数组的尾巴添加的,故数组的前面四个位置的值是undefined

           }

     2.  

        code:


function  Person(name, age) {

	this.name = name;
	this.age  = age;
	
}

var array = new Array();	
var i;


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

	var person = new Person ("i", i);
	print(person.name);
	array.push(person);//这里会对数组的长度加1,造成死循环
}

for ( i=0; i < 4; i++ ) {
	print(i + ":" + array[i].name);	
	print("----------");
}

        

抱歉!评论已关闭.