0

this is my array in model file,

var genres = [
  "Action",
  "Comedy",
  "Documentary"
];

I need to return(res.send) like this,

 [
      { label: "Action", value: 1 },
      { label: "Comedy", value: 2 },
      { label: "Documentary", value: 3 },
      { label: "Drama", value: 4 }
   ];

I wrote get a request like this,

router.get("/genre", (req, res, next) => {
  try {
    let genre = MovieModel.genres;
    res.send(genre);
  } catch (e) {
    return res.send(e.message);
  }
});
1
  • Please just choose an answer to mark this as solved (the tick sign on the left of each answer). Commented May 5, 2019 at 14:57

3 Answers 3

2

You could use Array.map to compose a new array.

router.get("/genre", (req, res, next) => {
  try {
    res.send(MovieModel.genres.map((genre, index) => { return { label: genre, value: index }; }));
  } catch (e) {
    return res.send(e.message);
  }
});
Sign up to request clarification or add additional context in comments.

Comments

0
const genres = [
  "Action",
  "Comedy",
  "Documentary"
];

const newGenres = genres.map((genre, i) => {
  return (
    { "label": genre, "value": i + 1 }
  )
});

console.log(newGenres);

Gives you:

[
  { label: "Action", value: 1 },
  { label: "Comedy", value: 2 },
  { label: "Documentary", value: 3 },
  { label: "Drama", value: 4 }
];

To return this via res.send:

router.get("/genre", (req, res, next) => {
  try {
    let genres = MovieModel.genres;
    res.send(
      genres.map(
        (genre, i) => { return { "label": genre, "value": i + 1 };
      )
    );
  } catch (e) {
    return res.send(e.message);
  }
});

Comments

-1

Working well

const arr = ["Action", "Comedy", "Documentary", "Drama"];

arr.map((arrElement, index) => ({ label: arrElement, value: index }));

1 Comment

Won't this set the values to 0, 1, 2, 3 instead of 1, 2, 3, 4?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.