[英]What's the right way to sort the child object by their property in a Map in Immutable.js
我有一张地图m
:
var m = Immutable.fromJS({
first: {a: 6, b: 3},
second: {a: 3, b: 6},
third: {a: 2, b: 4}
})
我想让m
的子对象按其属性b
排序,如下所示:
[
{a: 6, b: 3},
{a: 2, b: 4},
{a: 3, b: 6}
]
我试过以下:
m.valueSeq().sort(function(a, b) {
return a.get('b') > b.get('b')
}).toJS()
它适用于Chrome和node.js,但在OS X的Safari v8.0中,结果是
[
{a: 6, b: 3},
{a: 3, b: 6},
{a: 2, b: 4}
]
它根本没有排序! 这在我的React / Redux应用程序中造成了一些错误。 这是怎么回事? 什么是正确的排序方式? 谢谢!
您的自定义比较功能需要返回1,-1或0才能正确排序项目。
m.valueSeq().sort(function(a, b) {
if (a.get('b') > b.get('b')) return 1;
if (a.get('b') < b.get('b')) return -1;
else return 0;
}).toJS();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.