按日期排序列表不可变JS

时间:2018-03-26 11:10:30

标签: javascript unix-timestamp immutable.js

我有一个Immutable JS List与对象。在每个对象中,都有一个date 的键UNIX timestamp

[{someKey: 1, date: 823748943}, {someKey: 2, date: 2389472938}, {someKey: 3, date: 81278734}]

我如何按日期对列表进行排序?

2 个答案:

答案 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;
&#13;
&#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);