Сортировать координаты X и Y, используя Рамду - PullRequest
0 голосов
/ 18 октября 2018

У меня есть массив вида:

[
  { i: 'text', layout: {x: 1, y: 0} }
  { i: 'text', layout: {x: 0, y: 0} }
  { i: 'text', layout: {x: 1, y: 1} }
]

Я бы хотел отсортировать массив с помощью пакета ramda

Я достиг такой степени, что сначала сортировал Y -

const sortedY = R.sortBy(R.path(['layout', 'y']));
const temp = sortedY(originalContent);

Подскажите, пожалуйста, как я могу отсортировать x и y -

{x: 0, y: 0}
{x: 1, y: 0}
{x: 1, y: 1}

Ответы [ 2 ]

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

Похоже, вы хотите использовать sortWith .

Вот пример :

var list = [
  { i: 'first', layout: {x: 1, y: 1} },
  { i: 'second', layout: {x: 1, y: 0} },
  { i: 'third', layout: {x: 0, y: 1} },
];

var xySort = R.sortWith([
  R.ascend(R.path(['layout', 'x'])),
  R.ascend(R.path(['layout', 'y'])),
]);

console.log(xySort(list));
0 голосов
/ 18 октября 2018

Используйте sortWith для сортировки с использованием нескольких компараторов.

const xySort = R.sortWith([
  R.ascend(R.path(['layout','x'])),
  R.ascend(R.path(['layout','y']))
])
...