使用 Ramda 对 X 和 Y 坐标进行排序

Sort X and Y co-ordinates using Ramda

我有一个形式的数组:

[
  { 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}

使用sortWith 使用多个比较器进行排序。

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

看起来你想使用 sortWith

这里是an example:

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));