Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Making new strings with array data

I am trying to solve this problem where if age > 18 it returns name + can go to the matrix or if age < 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"]

The exercise is from a list of array.prototype.map() exercises so although I think there are other ways to get the correct answer I’ve tried to use the map() method. So far all I’ve managed to get back is a syntax error or [undefined,undefined,undefined,undefined,undefined] which is what the code below returns.

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"]

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

>Solution :

You can use map() to transform the array of objects. However, there’s a small mistake in your callback function. You’re not returning the string in your map() callback.

Here’s the corrected code:

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;
}

In your original code, you were missing the return statement before person.name + ..., so the map callback didn’t return anything, resulting in undefined.

With this corrected code, when you run makeStrings with the provided array, you should get the desired output:

[
  "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"
]
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading