Reputation: 19434
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
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
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
Reputation: 19434
Working well
const arr = ["Action", "Comedy", "Documentary", "Drama"];
arr.map((arrElement, index) => ({ label: arrElement, value: index }));
Upvotes: -1