sammiwei
sammiwei

Reputation: 3200

how to merge two arrays into a object using lodash

I am looking for best ways of doing this. I have two arrays:

key = [1,2,3];
value = ['value1', 'value2', 'value3']

The end result I want is an array of map:

[{key: 1, value: 'value1'} ,{key: 2, value: 'value2'}, {key: 3, value: 'value3'}]

How do I do it the most efficient/clean way using lodash? Thanks!

Upvotes: 3

Views: 7348

Answers (2)

Maksym Sladkov
Maksym Sladkov

Reputation: 41

I think your question is answered here.

const key = [1,2,3];
const value = ['value1', 'value2', 'value3']

const output = _.zipObject(key, value);

console.log(output);
/*
[
  {
    "key": 1,
    "value": "value1"
  },
  {
    "key": 2,
    "value": "value2"
  },
  {
    "key": 3,
    "value": "value3"
  }
]
*/
<script src="https://cdn.jsdelivr.net/lodash/4.16.6/lodash.min.js"></script>

Upvotes: 3

Wainage
Wainage

Reputation: 5392

Here's what you need

_.zipObject(key, value);

Actually ... no.

Pure Javascript can though:

var result = key.map(function(val, index){
  return { key: val, value: value[index] };
});

Upvotes: 3

Related Questions