我有一个范围对象,它有一个包含空值的列表,我想在两个方向上对该列表进行排序,但空值必须始终位于末尾。我可以很容易地做到这一点,方法是将对象分成 2 个,一个包含空值,一个不包含最后的空列表。但有没有更有效的方法来做到这一点呢?
例子:
[1,null,5,7,2,null]
sorted:
ASD: 1,2,5,7,null,null
DESC: 7,5,2,1,null,null
如果你只想对数组进行排序,JavaScript 有方法array.sort
。这需要一个比较器函数。
您可以实现两个这样的函数,一个用于升序排序,一个用于降序排序。在这两个函数中,您可以根据需要处理空值。查看文档here https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
如果您使用的是 angularjs 过滤器orderby http://docs.angularjs.org/api/ng.filter%3aorderBy它也需要一个比较器函数,因此类似的方法可能会起作用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)