Как создать отдельные массивы из ключей объекта - PullRequest
0 голосов
/ 17 октября 2019

Вот мой объект:

Я хочу создать три массива из трех ключей объекта, например:

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

Итак, если я распечатаю эти три переменные,

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

Ожидаемый результат будет:

[
    {
        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
    }
]

Как это сделать?

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>

Ответы [ 4 ]

1 голос
/ 17 октября 2019

Вам просто нужно удалить обертку [] при инициализации этих трех переменных, поскольку они уже являются массивами -

Таким образом, вместо

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

вам следует использовать

let person = obj.person;

Запустите приведенный ниже фрагмент кода, чтобы проверить

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);

Примечание : Вы не должны использовать зарезервированные ключевые слова, такие как Object для именования переменных.

0 голосов
/ 17 октября 2019

Просто используйте разрушение объекта . Обратите внимание, что вы не можете использовать Object в качестве имени переменной, потому что это зарезервированное слово (имя прототипа объекта в 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);
0 голосов
/ 17 октября 2019

сохранить первый объект как переменную, получить доступ к свойствам и сохранить в новых переменных, таких как:

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);

0 голосов
/ 17 октября 2019

Во-первых, я не верю, что вы можете использовать Object, поскольку он зарезервирован, во-вторых, удалить [] вокруг [obj.person]

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

Демо

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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...