Home > OS >  Convert into custom object from array of nested array of numbers
Convert into custom object from array of nested array of numbers

Time:05-11

I have an array of nested array of numbers and I am trying to convert it into array of object with x, y, z value.

I have the following data

[ 
 [1, 2, 3],
 [2, 3, 4], 
 [4, 5, 6]
]

My expected output is something like this

[ 
  { x: 1, y: 2, z: 3 }, 
  { x: 2, y: 3, z: 4 }, 
  { x: 4, y: 5, z: 6 } 
]

I have done this but I don't think its a standard solution. Any better way anyone can suggest?

data.map((point, i) => {
   return {
     x: point[0],
     y: point[1],
     z: point[2],
  }
})

CodePudding user response:

There is no better way in the sense of another (quicker) approach of doing this. map() is what you would need to to.

But you could (arguably) improve the readability/ conciseness of the code by using array destructuring and leaving out the explicit return statement. Note that I am also using enhanced object literals.

const input = [ 
 [1, 2, 3],
 [2, 3, 4], 
 [4, 5, 6]
]

const output = input.map(([x, y, z]) => ({x, y, z}));
console.log(output);
.as-console-wrapper { max-height: 100% !important; top: 0; }

Using this approach it is very obvious what the result would be therefore I would prefer this, but your solution is fine.

CodePudding user response:

This would also work. Using array destructuring. This cleans your solution a bit more.

const data = [
  [1, 2, 3],
  [2, 3, 4],
  [4, 5, 6]
]

const output = data.map(([x, y, z]) => ({x, y, z}))

console.log(output)

  • Related