如何获得反向的ReadonlyArray?

时间:2019-03-19 13:35:15

标签: typescript

如果我有一个ReadonlyArray<T>,并且想获得另一个具有相同项目但又相反的ReadonlyArray<T>,那么最简单的方法是什么?

例如:

const scoresInAscendingOrder: ReadonlyArray<number> = [1, 2, 3, 5, 9];
const scoresInDescendingOrder: ReadonlyArray<number> =  ???;

我不能使用scoresInAscendingOrder.reverse(),因为ReadonlyArray不支持该方法(正确的做法是,因为它将修改scoresInAscendingOrder)。

1 个答案:

答案 0 :(得分:1)

您可以只使用slice并反转其结果:

const scoresInAscendingOrder: ReadonlyArray<number> = [1, 2, 3, 5, 9];
const scoresInDescendingOrder: ReadonlyArray<number> = scoresInAscendingOrder.slice(0).reverse()

或者您可以使用更新的传播语法:

const scoresInDescendingOrder: ReadonlyArray<number> = [...scoresInAscendingOrder].reverse()