我有一个Immutable JS
List
与对象。在每个对象中,都有一个date
1>的键UNIX timestamp
[{someKey: 1, date: 823748943}, {someKey: 2, date: 2389472938}, {someKey: 3, date: 81278734}]
我如何按日期对列表进行排序?
答案 0 :(得分:1)
在withMutations中只能使用少数几种方法,包括set,push和pop。这些方法可以直接应用于持久数据结构,其中map,filter,sort和splice等其他方法将始终返回新的不可变数据结构,并且永远不会改变可变集合。
var list = Immutable.List.of({someKey: 1, date: 823748943}, {someKey: 2, date: 2389472938}, {someKey: 3, date: 81278734});
var sortedList = list.sort(function(lhs, rhs) {
return lhs.date > rhs.date;
});
console.log(list);
console.log(sortedList);

<script src="https://cdnjs.cloudflare.com/ajax/libs/immutable/3.8.2/immutable.min.js"></script>
&#13;
答案 1 :(得分:0)
您可以使用Array#from
创建副本,然后对其进行排序。这不会改变原始数组。
此外,Array#form
可用于ImmutableJS列表,它将返回相应的JS数组。
let data = [{someKey: 1, date: 823748943}, {someKey: 2, date: 2389472938}, {someKey: 3, date: 81278734}];
console.log(Array.from(data).sort((a, b) => a.date - b.date));
console.log(data);