user1896653
user1896653

Reputation: 3327

How to create individual arrays from keys of an object

Here is my Object:

I want to create three arrays from the three keys of the object such as:

let person = [Object.person];
let products = [Object.products];
let items = [Object.items];

So, if I print that three variables,

console.log(person);
console.log('==========================');
console.log(products);
console.log('==========================');
console.log(items);

Expected output will be:

[
    {
        id: '1',
        profession: 'student',
        name: 'Alex'
    },
    {
        id: '2',
        profession: 'businessman',
        name: 'Jay'
    }
]
==========================
[
   {
      id: '5',
      name: 'furniture',
      price: 200.0
   }
]
==========================
[
   {
      id: '6',
      name: 'Medical Devices',
      price: 70.0
    }
]

How to do this?

let obj = {
        person: [
            {
                id: '1',
                profession: 'student',
                name: 'Alex'
            },
            {
                id: '2',
                profession: 'businessman',
                name: 'Jay'
            }
        ],
        products: [
            {
                id: '5',
                name: 'furniture',
                price: 200.0
            }
        ],
        items: [
            {
                id: '6',
                name: 'Medical Devices',
                price: 70.0
            }
        ]
    };
    
let person = [obj.person];
let products = [obj.products];
let items = [obj.items];

console.log(person);
console.log('==========================');
console.log(products);
console.log('==========================');
console.log(items);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Upvotes: -1

Views: 36

Answers (4)

Vandesh
Vandesh

Reputation: 6894

You just need to remove the wrapper [] in your initialization of those three variables, since they are already arrays -

So, instead of

let person = [obj.person]; // This will create an array with a single item as whatever is in `obj.person`, in your case an array

you should use

let person = obj.person;

Run the code snippet below to check

const obj = {
    person: [
        {
            id: '1',
            profession: 'student',
            name: 'Alex'
        },
        {
            id: '2',
            profession: 'businessman',
            name: 'Jay'
        }
    ],
    products: [
        {
            id: '5',
            name: 'furniture',
            price: 200.0
        }
    ],
    items: [
        {
            id: '6',
            name: 'Medical Devices',
            price: 70.0
        }
    ]
};

let person = obj.person;
let products = obj.products;
let items = obj.items;

console.log(person);
console.log('==========================');
console.log(products);
console.log('==========================');
console.log(items);

Note: You shouldn't used reserved keywords like Object for naming your variables.

Upvotes: 0

connexo
connexo

Reputation: 56754

Simply use object destructuring. Please note that you cannot use Object as a variable name because it is a reserved word (name of the Object prototype in Javascript).

let obj = {
    person: [
        {
            id: '1',
            profession: 'student',
            name: 'Alex'
        },
        {
            id: '2',
            profession: 'businessman',
            name: 'Jay'
        }
    ],
    products: [
        {
            id: '5',
            name: 'furniture',
            price: 200.0
        }
    ],
    items: [
        {
            id: '6',
            name: 'Medical Devices',
            price: 70.0
        }
    ]
};

let { person, products, items } = obj;

console.log(person);
console.log(products);
console.log(items);

Upvotes: -1

Simon Hansen
Simon Hansen

Reputation: 680

save the first Object as variable and access the properties and save to a new variables like :

const myObject = {
person: [
    {
        id: '1',
        profession: 'student',
        ...
        price: 70.0
     }
  ]
};
let person = myObject.person;
let products = myObject.products;
let items = myObject.items;

console.log(person, products, items);

Upvotes: -1

First I don't belive you can use Object since it's reserved, second remove [] around [obj.person]

let person = obj.person;
let products = obj.products;
let items = obj.items;

Demo

var obj = {
  person: [{
      id: '1',
      profession: 'student',
      name: 'Alex'
    },
    {
      id: '2',
      profession: 'businessman',
      name: 'Jay'
    }
  ],
  products: [{
    id: '5',
    name: 'furniture',
    price: 200.0
  }],
  items: [{
    id: '6',
    name: 'Medical Devices',
    price: 70.0
  }]
};

let person = obj.person;
let products = obj.products;
let items = obj.items;

console.log(person);
console.log('==========================');
console.log(products);
console.log('==========================');
console.log(items);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Upvotes: -1

Related Questions