1

I have been trying to convert this data:

var myArray = [
[1,2,3,4],
["1","2","3","4"],
["a", "b", "c", "d"]
]

to this:

var result = [
  {
    "num": 1,
    "str": "1",
    "let": "a"
  },
  {
    "num": 2,
    "str": "2",
    "let": "b"
  },
  {
    "num": 3,
    "str": "3",
    "let": "c"
  },
  {
    "num": 4,
    "str": "4",
    "let": "d"
  }
]

Any assistance will be extremely helpful. I have tried various iterations but none of them yield what I am hoping for.

I am trying to use this:

objectified_data = array_data.map(function(x) {
    return {    
        "num": x[0],
        "str": x[1],
        "let": x[2]
    }
})

But I cannot figure out how to make the homogenous set of array, heterogenous for this to work. Ultimately, I am trying to filter out certain keys, so the original data as it was is not working for that task

0

3 Answers 3

3

You can achieve this with a simple for

var myArray = [
  [1, 2, 3, 4],
  ["1", "2", "3", "4"],
  ["a", "b", "c", "d"]
]
const json = [];

for (let i = 0; i < myArray[0].length; i++) {
  json.push({
    num: myArray[0][i],
    let: myArray[1][i],
    str: myArray[2][i],
  });
}

console.log(json);

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

1 Comment

Thank you both. Idk why this was so hard to figure out for me...
1

Try this

var myArray = [[1,2,3,4],["1","2","3","4"],["a", "b", "c", "d"]];

let result = myArray[0].map((v, i) => ({
    "num": myArray[0][i],
    "let": myArray[1][i],
    "str": myArray[2][i]
}))

console.log(result)

Comments

0

Just a basic solution. You would want i to be dynamic I believe ? In that case you can just check the first nested array's size and use that as i.

    let x = 0;
    let y = 1;
    let z = 2;
    let json = [];
    for(let i=0; i<4;i++){
        let item = {};
        item = {
            ["num"]: myArray[x][i],
            ["let"]: myArray[y][i],
            ["str"]: myArray[z][i]
        }
        result.push(item);
    }

1 Comment

Your answer could be improved with additional supporting information. Please edit to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers in the help center.

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.