以下方法和功能不起作用,有人可以帮助我吗?
hasMoreOscarsThan - this method accepts one actor object as a parameter and
returns true if the actor has more Oscars than the one that is passed as
a parameter and false otherwise.
现在编写以下函数:
getActorByName - this function expects a string as a parameter and returns
the object in the actors array whose name property is equal to the
string that is passed in (if there is one).
我的代码:
function Person(firstName, lastName, age, numOscars) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.numOscars = numOscars;
this.hello = function() { console.log("Hello, my name is " + this.firstName); }
this.hasMoreOscarsThan = function(x, y) {
if (this.numOscars > this.numOscars) {
return this.firstName;
} else {
return "False!";
}
}
};
var actors = new Array();
actors[0] = new Person("Leonardo", "DiCaprio", 41, 1);
actors[1] = new Person("Jennifer", "Lawrence", 25, 1);
actors[2] = new Person("Samuel L.", " Jackson", 67, 0);
actors[3] = new Person("Meryl", "Streep", 66, 3);
actors[4] = new Person("John", "Cho", 43, 0);
actors.forEach(function(item) {
item.hello();
})
actors.forEach(function(item) {
item.hasMoreOscarsThan();
})
function getActorByName(person) {
console.log(actors.firstName + " " + actors.lastName);
}
function list() {
var actorsLength = actors.length;
for (var i = 0; i < actorsLength; i++) {
getActorByName(actors[i]);
}
}
var search = function(lastName) {
var actorsLength = actors.length;
for (var i = 0; i < actorsLength; i++) {
if (lastName == actors[i].lastName) {
getActorByName(actors[i]);
}
}
}
search("DiCaprio");
var getAverageAge;
getAverageAge = (actors[0].age + actors[1].age + actors[2].age + actors[3].age + actors[4].age) / actors.length;
console.log(getAverageAge);
提前非常感谢!!!
答案 0 :(得分:0)
参数是person
对象,但你指的是一些actors
,它没有在函数内的任何地方定义,因此改为person.firstName
&amp; person.lastName
function getActorByName(person) {
console.log(person.firstName + " " + person.lastName);
}
答案 1 :(得分:0)
我编辑了你的代码:
function Person(firstName, lastName, age, numOscars) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
this.numOscars = numOscars;
this.hello = function() { console.log("Hello, my name is " + this.firstName); }
this.hasMoreOscarsThan = function(x) { // x is a compare parameter
if (this.numOscars > x) { // comparing numOscars with argument x
return this.firstName;
} else {
return "False!";
}
}
};
var actors = new Array();
actors[0] = new Person("Leonardo", "DiCaprio", 41, 1);
actors[1] = new Person("Jennifer", "Lawrence", 25, 1);
actors[2] = new Person("Samuel L.", " Jackson", 67, 0);
actors[3] = new Person("Meryl", "Streep", 66, 3);
actors[4] = new Person("John", "Cho", 43, 0);
actors.forEach(function(item) {
item.hello();
})
actors.forEach(function(item) {
console.log(item.hasMoreOscarsThan(2)); // I put compare argument 2 and print result to console
})
function getActorByName(person) {
console.log(person.firstName + " " + person.lastName); // changed actors to person
}
function list() {
var actorsLength = actors.length;
for (var i = 0; i < actorsLength; i++) {
getActorByName(actors[i]);
}
}
var search = function(lastName) {
var actorsLength = actors.length;
for (var i = 0; i < actorsLength; i++) {
if (lastName == actors[i].lastName) {
getActorByName(actors[i]);
}
}
}
search("DiCaprio");
var getAverageAge;
getAverageAge = (actors[0].age + actors[1].age + actors[2].age + actors[3].age + actors[4].age) / actors.length;
console.log(getAverageAge);
结果:
您好,我的名字是Leonardo
您好,我的名字是詹妮弗
您好,我的名字是Samuel L.
您好,我的名字是Meryl
您好,我的名字是John
假的! 假的!
假的!
梅丽尔
假的!
莱昂纳多·迪卡普里奥 48.4