diff --git a/SrcJuPublic.js b/SrcJuPublic.js index 2762a02f..689383d6 100644 --- a/SrcJuPublic.js +++ b/SrcJuPublic.js @@ -81,11 +81,20 @@ function getListData(lx, selectType) { if(getItem('sourceListSort','update') == 'name'){ jkdatalist = sortByPinyin(jkdatalist); } - jkdatalist.sort((a, b) => { - const stopA = a.stop ? 1 : 0; - const stopB = b.stop ? 1 : 0; - return stopA - stopB; - }); + + let i = 0, j = jkdatalist.length - 1; + while (i < j) { + // 如果当前元素需要移到末尾(即stop属性为1) + if ('stop' in jkdatalist[i] && jkdatalist[i].stop === 1) { + // 交换i和j指向的元素 + [jkdatalist[i], jkdatalist[j]] = [ajkdatalistrr[j], jkdatalist[i]]; + // 缩小j的范围,因为刚换过来的j位置元素可能是stop: 1,需要再次检查 + j--; + } else { + // 如果当前元素不需要移动,仅移动读取指针 + i++; + } + } return jkdatalist; }