【发布时间】:2023-02-03 23:18:09
【问题描述】:
我实现了以下逻辑以对混合数据(包含字母数字和数值)应用排序,但它没有按预期排序。
/*For numeric value sorting */if (!isNaN(fVal) && !isNaN(lastVal)) { switch (policy) { case SORT_BY_DESC: return +fVal < +lastVal ? 1 : -1; case SORT_BY_ASC: return +fVal > +lastVal ? 1 : -1; default: return 0; } } /* For alphanumeric sorting */ else { switch (policy) { case SORT_BY_DESC: return fVal < lastVal ? 1 : -1; case SORT_BY_ASC: return fVal > lastVal ? 1 : -1; default: return 0; } }如果所有值都是数字,则此逻辑工作正常,但如果我有混合数据,则无法正确排序。
原始数据 - ['60091A0222', '633', '63372A1019', '63372A1021', '6667', '6789', '7776']
预期结果 -
按降序排列的数据 - 63372A1021, 63372A1019, 60091A0222, 7776, 6789, 633
按升序排列的数据 - 633,, 6667, 6789, 7776, 60091A0222, 63372A1019, 63372A1021
我得到了什么 -
降序 - 7776, 6789, 6667, 63372A1021, 63372A1019, 633、 60091A0222
升序 - 60091A0222, 633、 63372A1019, 63372A1021, 6667, 6789, 7776
【问题讨论】:
-
请以文字符号添加原始数据。
标签: javascript reactjs sorting