提问人:Caelan Quigley 提问时间:10/5/2023 更新时间:10/5/2023 访问量:46
使用数组数据创建新字符串
Making new strings with array data
问:
我正在尝试解决这个问题,如果年龄> 18 岁,它返回名称 + 可以转到矩阵,或者如果年龄< 18 岁返回,则他们未成年:
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,undefined,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"]
答:
0赞
Ale_Bianco
10/5/2023
#1
可用于转换对象数组。但是,您的回调函数中有一个小错误。您不会在回调中返回字符串。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;
}
在原始代码中,您之前缺少该语句,因此 map 回调没有返回任何内容,从而导致 .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"
]
0赞
nesly
10/5/2023
#2
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
}
]));
你应该试试
评论
return person.name + " can go to The Matrix";
return person.name + "is underage!!";
makeStrings
function makeStrings(arr) { return arr.map((person) => { if (person.age > 18) { return person.name + " can go to The Matrix"; } return person.name + "is underage!!"; }); }