отображение через массив объектов с разными ключами - PullRequest
0 голосов
/ 11 октября 2018

У меня есть следующий массив

const myArrayOfPurchasedCars = [{
    honda: {
      user: 'et',
      links: {
        img: {
          href: 'some0imghere'
        },
        year: 2010
      },
      {
        camry: {
          user: 'st',
          links: {
            img: {
              href: 'some0imghere'
            },
            year: 2014
          },
          {
            maxima: {
              user: 'lt',
              links: {
                img: {
                  href: 'some0imghere'
                },
                year: 2015
              },
              {
                optima: {
                  user: 'it',
                  links: {
                    img: {
                      href: 'some0imghere'
                    },
                    year: 2018
                  }
                ]

, и я хочу иметь возможность получить доступ к пользователю без необходимости говорить myarray[0].honda || myArray[1].camry.

Есть ли способ сделать это с помощью функции карты?

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

Вы можете использовать map и Object.values.

myArrayOfPurchasedCars.map(function (car) { return Object.values(car)[0].user; });

0 голосов
/ 11 октября 2018

const myArrayOfPurchasedCars = [
    {
      honda: {
        user: 'et',
        links: {
          img: {
            href: 'some0imghere'
          },
          year: 2010
        }
      }
    },
    {
      camry: {
        user: 'st',
        links: {
          img: {
            href: 'some0imghere'
          },
          year: 2014
        }
      }
    },
    {
      maxima: {
        user: 'lt',
        links: {
          img: {
            href: 'some0imghere'
          },
          year: 2015
        }
      }
    },
    {
      optima: {
        user: 'it',
        links: {
          img: {
            href: 'some0imghere'
          },
          year: 2018
        }
      }
    }
  ];
  
const users =  myArrayOfPurchasedCars.map(car => Object.getOwnPropertyNames(car).map(p => car[p].user)[0]);

console.log(users);
...