大佬教程收集整理的这篇文章主要介绍了对JavaScript数组进行排序,使得空值总是在底部,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
例如:
var arr = [ ["bob","12","yes"],["joe","","no"],["tim","19",["dan",""],"0",""] ]
字符串可以包含可以表示为字符串的任何东西,包括:“”,“”,“0”或“00-00-00”等…以及我用于排序的任何列.
我正在排序升序和降序,但我排序的一些值是空白字符串:“”.在所有现代浏览器中,如何获得空白字符串(仅)始终位于新数组的末尾?
目前他们是在升序结束时,但在下降的开始.
我正在排序如下(是的,我相信我可以做得更短):
if (direction == "asc") { SortedArr = arr.sort(function (a,b) { if (a[colToSortBy] == '') { return -1; } if (a[colToSortBy].toUpperCase() < b[colToSortBy].toUpperCase()) { return -1; } if (a[colToSortBy].toUpperCase() > b[colToSortBy].toUpperCase()) { return 1; } return 0; }); } else { SortedArr = arr.sort(function (a,b) { if (a[colToSortBy] == '') { return -1; } if (b[colToSortBy].toUpperCase() < a[colToSortBy].toUpperCase()) { return -1; } if (b[colToSortBy].toUpperCase() > a[colToSortBy].toUpperCase()) { return 1; } return 0; }); }
Working example在JSFiddle上,无论顺序是升序还是降序,都将空字符串始终置于结尾.这可能是一个可用性问题,但这是解决方案:
if (direction == "asc") { SortedArr = arr.sort(function (a,b) { return (a[col] || "|||").toUpperCase().localeCompare((b[col] || "|||").toUpperCase()) }); } else { SortedArr = arr.sort(function (a,b) { return (b[col] || "!!!").toUpperCase().localeCompare((a[col] || "!!!").toUpperCase()) }); }
以上是大佬教程为你收集整理的对JavaScript数组进行排序,使得空值总是在底部全部内容,希望文章能够帮你解决对JavaScript数组进行排序,使得空值总是在底部所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。