首页 > 解决方案 > 使用 Ramda 对 X 和 Y 坐标进行排序

问题描述

我有一个形式的数组:

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

标签: javascriptsortingramda.js

解决方案


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

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

推荐阅读