Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 什么';这是在Immutable.js中按子对象在映射中的属性对其进行排序的正确方法_Javascript_Immutable.js - Fatal编程技术网

Javascript 什么';这是在Immutable.js中按子对象在映射中的属性对其进行排序的正确方法

Javascript 什么';这是在Immutable.js中按子对象在映射中的属性对其进行排序的正确方法,javascript,immutable.js,Javascript,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

我有一张地图
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应用程序中产生了一些bug。怎么了?正确的分类方法是什么?谢谢

自定义比较函数需要返回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();
m.valueSeq().sort(函数(a,b){
如果(a.get('b')>b.get('b'))返回1;
如果(a.get('b')
您的自定义比较函数需要返回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();
m.valueSeq().sort(函数(a,b){
如果(a.get('b')>b.get('b'))返回1;
如果(a.get('b')
当您应该返回一个数字时,您正在返回一个布尔值<代码>返回a.get('b')-b.get('b')。当
a
较大时,返回一个正数。当
b
更大时,它返回负数,当相等时,它返回
0
。当你应该返回一个数字时,你返回的是布尔值<代码>返回a.get('b')-b.get('b')。当
a
较大时,返回一个正数。当
b
较大时,返回负值;当b等于时,返回
0