Преобразовать массив объектов в массив массивов? - PullRequest
0 голосов
/ 10 ноября 2018

Данный объект json выглядит так:

var items = [{
    title: 'sample 1',
    image: 'http://www.lorempixel.com/700/600/'
}, {
    title: 'sample 2',
    image: 'http://www.lorempixel.com/900/1200/'
}, {
    title: 'sample 3',
    image: 'http://www.lorempixel.com/400/300/'
}, {
    title: 'sample 4',
    image: 'http://www.lorempixel.com/600/600/'
}, {
    title: 'sample 5',
    image: 'http://www.lorempixel.com/400/310/'
}, {
    title: 'sample 6',
    image: 'http://www.lorempixel.com/410/300/'
}, {
    title: 'sample 7',
    image: 'http://www.lorempixel.com/500/300/'
}, {
    title: 'sample 8',
    image: 'http://www.lorempixel.com/300/300/'
}, {
    title: 'sample 9',
    image: 'http://www.lorempixel.com/450/320/'
}, {
    title: 'sample 10',
    image: 'http://www.lorempixel.com/500/400/'
}];

Хочу получить такой массив.

[['sample 1', 'http://www.lorempixel.com/700/600/'], ['sample 2', 'http://www.lorempixel.com/900/1200/'], ....]

Я пробовал что-то вроде этого:

const rows = [];
            for (let i = 0; i < items.length; i++) {
                const element = items[i];
                rows[i] = element.title;
                for (let j = i; j < items.image; j++) {
                    const el = response[j];
                    rows[j] = el.image;
                }
            }

Я получаю массив, содержащий только все изображения, я думаю, потому что я переопределяю другие значения во втором цикле. Какой должен быть правильный способ получить оба значения, как описано?

Ответы [ 2 ]

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

Просто передайте Object.values() как обратный вызов .map():

let data = [
  {title: 'sample 1', image: 'http://www.lorempixel.com/700/600/'},
  {title: 'sample 2', image: 'http://www.lorempixel.com/900/1200/'},
  {title: 'sample 3', image: 'http://www.lorempixel.com/400/300/'},
  {title: 'sample 4', image: 'http://www.lorempixel.com/600/600/'},
  {title: 'sample 5', image: 'http://www.lorempixel.com/400/310/'}
];

let result = data.map(Object.values);

console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
0 голосов
/ 10 ноября 2018

Все, что вам нужно, это простой .map - извлечь соответствующие значения свойств из объекта и вернуть массив, содержащий эти два значения:

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