0

I have an object of this form

[
  {
    array1: 'value1',
    array2: 'value1'
  },
  {
    array1: 'value2',
    array2: 'value2'
  },
  {
    array1: 'value3',
    array2: 'value3'
  }
]

I need to create two new arrays of the form

array1['value1','value2','value3',]
array2['value1','value2','value3',]
Jack Bashford
  • 43,180
  • 11
  • 50
  • 79
dakay
  • 29
  • 5

2 Answers2

0

You can use the code below to achieve this

let arr = [{
      array1: 'value1',
      array2: 'value1'
    },
    {
      array1: 'value2',
      array2: 'value2'
    },
    {
      array1: 'value3',
      array2: 'value3'
    }
  ],
  array1 = [],
  array2 = [];


arr.forEach(e => {
  array1.push(e.array1);
  array2.push(e.array2);
});

console.log(array1, array2)
Nidhin Joseph
  • 9,981
  • 4
  • 26
  • 48
0

Use map:

const arr = [{array1:'value1',array2:'value1'},{array1:'value2',array2:'value2'},{array1:'value3',array2:'value3'}];

const array1 = arr.map(({ array1 }) => array1);
const array1 = arr.map(({ array2 }) => array2);

console.log(array1);
console.log(array2);

Or you could use reduce for more efficiency:

const arr = [{array1:'value1',array2:'value1'},{array1:'value2',array2:'value2'},{array1:'value3',array2:'value3'}];

const [array1, array2] = arr.reduce(([a, b], { array1, array2 }) => (a.push(array1), b.push(array2, [a, b]), []);

console.log(array1);
console.log(array2);
Jack Bashford
  • 43,180
  • 11
  • 50
  • 79