A reverse call will actually change the array in place (and return it), so you may run into a problem when it accesses several times.
For example, if you have two blocks, for example:
<ul data-bind="foreach: anObservableArray.reverse()" >...</ul> <ul data-bind="foreach: anObservableArray.reverse()" >...</ul>
The first will be canceled, and the second will return to the original order.
It is better to cancel the copy, especially if you will add and remove elements from the array.
source share