我正在尝试解决这个问题,如果年龄> 18,它返回姓名+可以进入矩阵,或者如果年龄< 18 returns they are under age:
function makeStrings(arr){
// your code here
}
console.log(makeStrings([
{
name: "Angelina Jolie",
age: 80
},
{
name: "Eric Jones",
age: 2
},
{
name: "Paris Hilton",
age: 5
},
{
name: "Kayne West",
age: 16
},
{
name: "Bob Ziroll",
age: 100
}
]));
// ["Angelina Jolie can go to The Matrix",
// "Eric Jones is under age!!",
// "Paris Hilton is under age!!",
// "Kayne West is under age!!",
// "Bob Ziroll can go to The Matrix"]
该练习来自 array.prototype.map() 练习列表,因此尽管我认为还有其他方法可以获得正确答案,但我尝试使用 map() 方法。到目前为止,我设法返回的只是一个语法错误或 [undefined,undefine,undefined,undefined,undefined],这就是下面的代码返回的内容。
function makeStrings(arr){
// your code here
const map1 = arr.map((person) => {
if(person.age > 18){
person.name + " can go to The Matrix";
}
else {
person.name + "is underage!!";
}
});
return map1;
}
console.log(makeStrings([
{
name: "Angelina Jolie",
age: 80
},
{
name: "Eric Jones",
age: 2
},
{
name: "Paris Hilton",
age: 5
},
{
name: "Kayne West",
age: 16
},
{
name: "Bob Ziroll",
age: 100
}
]));
// ["Angelina Jolie can go to The Matrix",
// "Eric Jones is under age!!",
// "Paris Hilton is under age!!",
// "Kayne West is under age!!",
// "Bob Ziroll can go to The Matrix"]
您可以使用
map()
来变换对象数组。但是,您的回调函数中有一个小错误。您没有在 map()
回调中返回字符串。
这是更正后的代码:
function makeStrings(arr){
const map1 = arr.map((person) => {
if(person.age > 18){
return person.name + " can go to The Matrix";
}
else {
return person.name + " is under age!!";
}
});
return map1;
}
在您的原始代码中,您在
return
之前缺少 person.name + ...
语句,因此地图回调没有返回任何内容,导致 undefined
。
使用此更正后的代码,当您使用提供的数组运行
makeStrings
时,您应该获得所需的输出:
[
"Angelina Jolie can go to The Matrix",
"Eric Jones is under age!!",
"Paris Hilton is under age!!",
"Kayne West is under age!!",
"Bob Ziroll can go to The Matrix"
]
function makeStrings(arr) {
const result = [];
for (const person of arr) {
if (person.age >= 18) {
result.push(`${person.name} can go to The Matrix`);
} else {
result.push(`${person.name} is under age!!`);
}
}
return result;
}
console.log(makeStrings([
{
name: "Angelina Jolie",
age: 80
},
{
name: "Eric Jones",
age: 2
},
{
name: "Paris Hilton",
age: 5
},
{
name: "Kayne West",
age: 16
},
{
name: "Bob Ziroll",
age: 100
}
]));
你应该尝试一下