我有一个以下形式的数组:
[
{ 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}
答案 0 :(得分:1)
使用sortWith使用多个比较器进行排序。
const xySort = R.sortWith([
R.ascend(R.path(['layout','x'])),
R.ascend(R.path(['layout','y']))
])
答案 1 :(得分:1)
好像您想使用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));