VR1256
VR1256

Reputation: 1450

Converting flat array to Id and Name object array using Lodash

let states = ["Georgia","California","FL","TX","MA","NJ"];

How do I convert the states array into Id and Name array collection using lodash.

Is there a way to convert the array in below format ( image shown below):

image

Upvotes: 0

Views: 839

Answers (2)

larz
larz

Reputation: 5766

let states = ["Georgia","California","FL","TX","MA","NJ"];

const newObj = [];

_.each(states, state => newObj.push({ id: state, name: state }));

console.log(newObj);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>

_.each performs a function on each item of an Array. With that you can create a new object for each state and push that into a new Array. Note: this could also be accomplished with JavaScript's built in .map.

----- UPDATE ----- Why did I make this complicated many years ago?

const states = ["Georgia","California","FL","TX","MA","NJ"];

const newObj = states.map(state => ({ id: state, name: state }));

console.log(newObj);

No need to use lodash, just map through the array and return a new object for each item in the array.

Upvotes: 1

Brr Switch
Brr Switch

Reputation: 984

You don't really need lodash to do that.

let states = ["Georgia","California","FL","TX","MA","NJ"];

let result = states.map((item) => {
return {
      id: item,
      name: item}})
console.log(result)

You do pretty much the same with lodash

import _ from 'lodash';

result = _.map(states, (item) => {
return {
      id: item,
      name: item}})

Upvotes: 4

Related Questions