У меня есть некоторые данные, которые я хочу отсортировать в таблицу. Данные состоят из массива строк, которые в свою очередь являются массивами ячеек, которые являются объектами со свойствами column_name
, column_value
, column_type
и column_id
(как показано ниже).
Я хотел бы отсортировать данные по нескольким столбцам, например, Я хотел бы отсортировать по city
по возрастанию, а затем по age
по убыванию. Я считаю, что lodash _.orberBy()
может достичь этого, но я не могу понять, как реализовать это на вложенных данных, как это.
Хотя я подозреваю, что lodash выполнит свою работу, я подозреваю, что может быть другой способ, который лучше.
Как мне отсортировать следующие вложенные данные по разным столбцам?
import _ from 'lodash';
const sampleData = [
[
{
column_name: 'id',
column_value: '12345',
column_type: 'string',
column_id: 'item_attributes#id',
},
{
column_name: 'age',
column_value: '32',
column_type: 'number',
column_id: 'item_attributes#age',
},
{
column_name: 'city',
column_value: 'London',
column_type: 'string',
column_id: 'item_attributes#city',
},
],
[
{
column_name: 'id',
column_value: 'abcde',
column_type: 'string',
column_id: 'item_attributes#id',
},
{
column_name: 'age',
column_value: '52',
column_type: 'number',
column_id: 'item_attributes#age',
},
{
column_name: 'city',
column_value: 'Bristol',
column_type: 'string',
column_id: 'item_attributes#city',
},
],
[
{
column_name: 'id',
column_value: 'a1b2d',
column_type: 'string',
column_id: 'item_attributes#id',
},
{
column_name: 'age',
column_value: '21',
column_type: 'number',
column_id: 'item_attributes#age',
},
{
column_name: 'city',
column_value: 'London',
column_type: 'string',
column_id: 'item_attributes#city',
},
],
];
const orderedData = _.orderBy(
sampleData,
// ?? what goes here?
// ?? what goes here?
);
// desired output
// [
// [
// {
// column_name: 'id',
// column_value: 'abcde',
// column_type: 'string',
// column_id: 'item_attributes#id',
// },
// {
// column_name: 'age',
// column_value: '52',
// column_type: 'number',
// column_id: 'item_attributes#age',
// },
// {
// column_name: 'city',
// column_value: 'Bristol',
// column_type: 'string',
// column_id: 'item_attributes#city',
// },
// ],
// [
// {
// column_name: 'id',
// column_value: '12345',
// column_type: 'string',
// column_id: 'item_attributes#id',
// },
// {
// column_name: 'age',
// column_value: '32',
// column_type: 'number',
// column_id: 'item_attributes#age',
// },
// {
// column_name: 'city',
// column_value: 'London',
// column_type: 'string',
// column_id: 'item_attributes#city',
// },
// ],
// [
// {
// column_name: 'id',
// column_value: 'a1b2d',
// column_type: 'string',
// column_id: 'item_attributes#id',
// },
// {
// column_name: 'age',
// column_value: '21',
// column_type: 'number',
// column_id: 'item_attributes#age',
// },
// {
// column_name: 'city',
// column_value: 'London',
// column_type: 'string',
// column_id: 'item_attributes#city',
// },
// ],
// ]