2016-03-08 93 views
0
function Person(name,age){ // Our Person constructor 
    this.name = name ; 
    this.age = age ; 

var family = new Array(); // Now we can make an array of people 
family [1] = new Person("alice",40); 
family [2] = new Person("bob",42); 
family [3] = new Person("michelle",8); 
family [4] = new Person("timmy",6); 

for (var i = 0; i < family.length; i++) { 
    console.log(family[i].name); 
} 
} 

enter image description here循环与数组中的对象

我需要我在这里得到错误的帮助。在这个任务中,我需要创建一个for循环,循环遍历家庭数组,并按创建顺序为每个家庭成员输出name属性。

+0

注意:您应该使用['push'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/push)将元素添加到数组。例如:'family.push(新人(“爱丽丝”,40));' –

回答

2

尝试关闭构造正确的花括号,

function Person(name,age){ // Our Person constructor 
    this.name = name ; 
    this.age = age ; 
    } 
//^------ close it here. 
var family = new Array(); // Now we can make an array of people 
family [1] = new Person("alice",40); 
family [2] = new Person("bob",42); 
family [3] = new Person("michelle",8); 
family [4] = new Person("timmy",6); 

for (var i = 0; i < family.length; i++) { 
    console.log(family[i].name); 
} 

您没有正确关闭的支架,其结果是,当你创建了一个对象,构造函数获取调用,你又正在创建它内部的一个对象等等。因此超出了最大调用堆栈大小。并且错误被提出。

作为一个附注,你的数组看起来像[undefined x 1, obj, obj .. n],因为你忽略了它的第零个索引。因此,它能够更好地使用推,family.push(new Person("alice", 40));

0
function Person(name, age) { // Our Person constructor 
    this.name = name; 
    this.age = age; 
} // <--- "}" must be here 

var family = new Array(); // Now we can make an array of people 
family[1] = new Person("alice", 40); 
family[2] = new Person("bob", 42); 
family[3] = new Person("michelle", 8); 
family[4] = new Person("timmy", 6); 

for (var i = 0; i < family.length; i++) { 
    console.log(family[i].name); 
}