Как мне превратить этот массив объектов в строку, используя методы ES6? - PullRequest
0 голосов
/ 11 ноября 2018

У меня есть следующий массив объектов:

const pagesByBook = [
{bookName: "An old tome", pages: 123},
{bookName: "Really ancient stuff", pages: 432},
{bookName: "Yup, another old book", pages: 218}
]

И я хотел бы получить следующий вывод строки:

        const output= "['An old tome', 123, 'old', null],
        ['Really ancient stuff', 432, 'old', null],
        ['Yup, another old book', 218, 'old', null]"

Как я могу сделать это, используя несколько строк, используя методы ES6, такие как map?

Ответы [ 2 ]

0 голосов
/ 12 ноября 2018

Мне кажется, это просто map с деструктурой ES6. Предполагая, что последние 2 элемента в массивах являются константами (old, null):

const data = [ {bookName: "An old tome", pages: 123}, {bookName: "Really ancient stuff", pages: 432}, {bookName: "Yup, another old book", pages: 218} ] 

const result = data.map(({bookName, pages}) => [bookName, pages, 'old', null])

console.log(JSON.stringify(result))

Если требуется строковое представление, вы можете изменить его на:

const data = [ {bookName: "An old tome", pages: 123}, {bookName: "Really ancient stuff", pages: 432}, {bookName: "Yup, another old book", pages: 218} ] 

const result = data.map(({bookName, pages}) => JSON.stringify([bookName, pages, 'old', null]))

console.log(result.join(','))
0 голосов
/ 11 ноября 2018

Использование JSON.stringify , Array # map , Object.values ​​, Array # slice и Array # concat чтобы получить требуемый результат.

const pagesByBook = [{
    bookName: "An old tome",
    pages: 123
  },
  {
    bookName: "Really ancient stuff",
    pages: 432
  },
  {
    bookName: "Yup, another old book",
    pages: 218
  }
]

const res = JSON.stringify(pagesByBook.map(item => Object.values(item).concat("old", null))).slice(1, -1);

console.log(res)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...