Конвертировать массив объектов в массив массивов - PullRequest
0 голосов
/ 02 мая 2018
var json = [{one: "text1", two: "text2", three: 3, four: 4},
            {one: "text3", two: "text4", three: 5, four: 6},
            {one: "text5", two: "text7", three: 8, four: 9}]

Как я могу преобразовать массив объектов выше в массив массивов ниже?

var array = [["text1", "text2", 3, 4], 
             ["text3", "text4", 5, 6], 
             ["text5", "text7", 8, 9]]

Есть ли функция ES2015, которая поможет легко конвертировать его? Если бы не цикл for.

Ответы [ 3 ]

0 голосов
/ 02 мая 2018

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

var array = json.map(({ one, two, three, four }) => ([one, two, three, four]))

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

var json = [{ two: "text2", one: "text1", three: 3, four: 4 },
            { one: "text3", three: 5, two: "text4", four: 6 },
            { four: 9, two: "text7", three: 8, one: "text5" }]
0 голосов
/ 02 мая 2018

Вы можете использовать Object.values напрямую в качестве обратного вызова, который доступен в ES 2017

var array = [{ one: "text1", two: "text2", three: 3, four: 4 }, { one: "text3", two: "text4", three: 5, four: 6 }, { one: "text5", two: "text7", three: 8, four: 9 }],
    result = array.map(Object.values);
                
console.log(result);

Классический подход

var array = [{ one: "text1", two: "text2", three: 3, four: 4 }, { one: "text3", two: "text4", three: 5, four: 6 }, { one: "text5", two: "text7", three: 8, four: 9 }],
    result = array.map(o => Object.keys(o).map(k => o[k]));
                
console.log(result);
0 голосов
/ 02 мая 2018

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

let array = json.map(obj => Object.values(obj));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...