Это мой вывод файла JSON

let employees = [{
          "id":1,
          "name":"Lann",
          "username":"brot",
          "email":"b@sd.com",
          "address":{
             "city":"Gweh",
             "zipcode":"92998-3874",
             "geo":{
                "lat":"45",
                "lng":"77"
             }
          }}]

Как я получаю идентификатор, имя и адрес электронной почты, как показано ниже.

{
  "id":1,
   "name":"Lann",
   "email":"b@sd.com"
}
1
Nirodha Wickramarathna 10 Окт 2021 в 07:56

3 ответа

Лучший ответ

Если в вашем массиве только один элемент, вы можете просто получить доступ к информации, нет необходимости создавать другой массив, например: employees[0].id, employees[0].name, employees[0].email, или вы можете просто извлечь объект с помощью деструктурирования объектов

let employees = [{
  "id": 1,
  "name": "Lann",
  "username": "brot",
  "email": "b@sd.com",
  "address": {
    "city": "Gweh",
    "zipcode": "92998-3874",
    "geo": {
      "lat": "45",
      "lng": "77"
    }
  }
}];
const picked = (({ id, name, email }) => ({  id, name, email }))(employees[0]);
console.log(picked);

Но если в вашем массиве больше сотрудников, я думаю, что вам нужно выполнить поиск по идентификатору или имени и вернуть только объект с минимальной информацией, вы можете сделать это следующим образом

let employees = [{
  "id": 1,
  "name": "Lann",
  "username": "brot",
  "email": "b@sd.com",
  "address": {
    "city": "Gweh",
    "zipcode": "92998-3874",
    "geo": {
      "lat": "45",
      "lng": "77"
    }
  }
}];
let employee = employees.find(o => o.name === 'Lann');
let picked = (({ id, name,email }) => ({ id, name,email }))(employee);
console.log(picked);
2
Gabriel 10 Окт 2021 в 05:21

Вы можете заархивировать с помощью карты.

let employees = [{
          "id":1,
          "name":"Lann",
          "username":"brot",
          "email":"b@sd.com",
          "address":{
             "city":"Gweh",
             "zipcode":"92998-3874",
             "geo":{
                "lat":"45",
                "lng":"77"
             }
          }
          }]
const data = employees.map(o => ({ id: o.id, name: o.name, email:o.email }));
console.log(data[0]);
2
Jay Patel 10 Окт 2021 в 05:03

Вы также можете просмотреть свой ввод, если он содержит несколько элементов, и получить массив элементов сжатия:

let employees = [{
  "id": 1,
  "name": "Lann",
  "username": "brot",
  "email": "b@sd.com",
  "address": {
    "city": "Gweh",
    "zipcode": "92998-3874",
    "geo": {
      "lat": "45",
      "lng": "77"
    }
  }
}]

let shrink = [];

for (let employee of employees) {
  shrink.push({
    id: employee.id,
    name: employee.name,
    email: employee.email
  });
}

console.log(shrink);
1
Philippe 10 Окт 2021 в 05:33