BIS Tech
BIS Tech

Reputation: 19434

How to modify array on NodeJS

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

Upvotes: 0

Views: 48

Answers (3)

James Hibbard
James Hibbard

Reputation: 17735

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

Upvotes: 0

Dillan Wilding
Dillan Wilding

Reputation: 1111

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

Upvotes: 2

BIS Tech
BIS Tech

Reputation: 19434

Working well

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

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

Upvotes: -1

Related Questions