1

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],
  }
})
1
  • 3
    That's a fine solution. Commented May 11, 2022 at 14:31

2 Answers 2

3

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 - again - your solution is perfectly fine.

Sign up to request clarification or add additional context in comments.

Comments

1

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)

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.