对字符串的数字部分进行排序
var array = ['abc.def1.1', 'abc.def1.1234', 'abc.def1.1235', 'abc.def1.2', 'abc.def1.234']; array.sort(function (a,b) { return a.localeCompare(b, undefined, { numeric: true, sensitivity: 'base' }); }); console.log(array);
使用localeCompare()

参考文献:关于javascript:对字符串的数字部分进行排序
项目实践:对鞋码进行重新排序
<script> $(function () { const values = [] const selectTag = $(".product-info__variants_items.slider-switch").siblings().find("label") selectTag.each(function () { //遍历获取标签值 let value = $(this).text().trim() //去除前后空格 switch (value) { //改变标签值 case '34': value = 'US4'; break; case '35': value = 'US5'; break; case '36': value = 'US5.5'; break; case '37': value = 'US6'; break; case '38': value = 'US7'; break; case '39': value = 'US8'; break; case '40': value = 'US8.5'; break; case '41': value = 'US9.5'; break; case '42': value = 'US10'; break; case '43': value = 'US11'; break; case '44': value = 'US11.5'; break; case '45': value = 'US12.5'; break; case '46': value = 'US13.5'; break; default: value } values.push(value) }) values.sort(function (a, b) { //对字符串数字部分进行排序 return a.localeCompare(b, undefined, { numeric: true, sensitivity: 'base' }); }) selectTag.each(function (index) { //重新遍历标签并赋值 $(this).text(values[index]) }) }) </script>
实现如下图:


浙公网安备 33010602011771号