按字母顺序排序immutable.js

22
我希望通过属性 name 对immutable.js有序列表进行排序。 data.map(x => x.get("name")) 返回字符串,我想按名称按字母顺序对我的映射进行排序。
如何做到这一点?我尝试过:
return data.sortBy((val) => {
    if (dir === "up") {
      return val.get("name");
    } else {
      return - val.get("name");
    }
  });

8
如果有人想要对列表或者映射按键进行排序,可以使用以下方法:mapOrList.sortBy((val, key) => key) - SudoPlz
1个回答

37
var fiends = Immutable.fromJS([{name: 'Squirrel'}, {name: 'Cat'}, {name: 'Raccoon'}]);
var sorted = fiends.sortBy(
  (f) => f.get('name')
);
sorted.map(x => x.get('name')).toJS();  // ["Cat", "Raccoon", "Squirrel"]

使用localCompare方法:

fiends.sort(
  (a, b) => a.get('name').localeCompare(b.get('name'))
);

13
恶毒的动物! - Mr Wilde
1
排序是同步的吗? - SudoPlz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接