“无”排序可以恢复默认排序

This commit is contained in:
枫谷剑仙 2020-03-17 18:27:55 +08:00
parent 81553ebde1
commit d5ca4a122e
2 changed files with 26 additions and 32 deletions

View File

@ -13,7 +13,7 @@ function findFullSkill(subSkill){
//返回flag里值为true的数组如[1,4,7] //返回flag里值为true的数组如[1,4,7]
function flags(num){ function flags(num){
return Array.from(new Array(32)).map((a,i)=>{return i;}).filter(i => num & (1 << i)); return Array.from({length:10},(n,i)=>i).filter(i => num & (1 << i));
} }
//高级技能解释 //高级技能解释
@ -38,14 +38,6 @@ function parseSkillDescription(skill)
function typeN(i){return typeName[i || 0] || ("未知类型" + i);} function typeN(i){return typeName[i || 0] || ("未知类型" + i);}
//返回觉醒名 //返回觉醒名
function awokenN(i){return awokenName[(i || 0)-1] || ("未知觉醒" + i);} function awokenN(i){return awokenName[(i || 0)-1] || ("未知觉醒" + i);}
//从二进制的数字中获得布尔值数组
function getBooleanFromBinary(num,reverse=true)
{ /*num2N21N0
如果num和2的N次方同时存在某位1则返回这个数逻辑上转换为true*/
let arr = num.toString(2).split("").map(c=>{return parseInt(c);});
if (reverse) arr.reverse();
return arr;
}
//从二进制的数字中获得有哪些内容 //从二进制的数字中获得有哪些内容
function getNamesFromBinary(num,dataArr) function getNamesFromBinary(num,dataArr)
{ /*num2N21N0 { /*num2N21N0

View File

@ -826,6 +826,7 @@ function initialize()
}); });
const searchMonList = searchBox.querySelector(".search-mon-list"); //搜索结果列表 const searchMonList = searchBox.querySelector(".search-mon-list"); //搜索结果列表
searchMonList.originalHeads = null; //用于存放原始搜索结果
const s_awokensEquivalent = searchBox.querySelector("#consider-equivalent-awoken"); //搜索等效觉醒 const s_awokensEquivalent = searchBox.querySelector("#consider-equivalent-awoken"); //搜索等效觉醒
const s_canAssist = searchBox.querySelector("#can-assist"); //只搜索辅助 const s_canAssist = searchBox.querySelector("#can-assist"); //只搜索辅助
@ -842,9 +843,9 @@ function initialize()
const s_includeSuperAwoken = searchBox.querySelector("#include-super-awoken"); //搜索超觉醒 const s_includeSuperAwoken = searchBox.querySelector("#include-super-awoken"); //搜索超觉醒
s_includeSuperAwoken.onclick = function(){ s_includeSuperAwoken.onclick = function(){
if (this.checked) if (this.checked)
s_sawokenDiv.classList.add("display-none"); s_sawokenDiv.classList.add("display-none");
else else
s_sawokenDiv.classList.remove("display-none"); s_sawokenDiv.classList.remove("display-none");
}; };
function search_awokenAdd1() function search_awokenAdd1()
@ -917,23 +918,15 @@ function initialize()
const createCardHead = editBox.createCardHead; const createCardHead = editBox.createCardHead;
searchMonList.classList.add("display-none"); searchMonList.classList.add("display-none");
searchMonList.innerHTML = ""; searchMonList.innerHTML = ""; //清空旧的
if (searchArr.length>0) if (searchArr.length>0)
{ {
let fragment = document.createDocumentFragment(); //创建节点用的临时空间 let fragment = document.createDocumentFragment(); //创建节点用的临时空间
//获取原始排序的头像列表
const sortIndex = parseInt(s_sortList.value,10); searchMonList.originalHeads = searchArr.map(card=>createCardHead(card.id));
const reverse = s_sortReverse.checked; //对头像列表进行排序
const sortFunction = sort_function_list[sortIndex].function; const headsArray = sortHeadsArray(searchMonList.originalHeads);
searchArr.sort((card_a,card_b)=>{ headsArray.forEach(head=>fragment.appendChild(head));
let sortNumber = sortFunction(card_a,card_b);
if (reverse) sortNumber *= -1;
return sortNumber;
});
searchArr.forEach(function(card){
const cli = createCardHead(card.id);
fragment.appendChild(cli);
});
searchMonList.appendChild(fragment); searchMonList.appendChild(fragment);
} }
searchMonList.classList.remove("display-none"); searchMonList.classList.remove("display-none");
@ -1014,26 +1007,35 @@ function initialize()
t.checked = false; t.checked = false;
}); });
searchMonList.originalHeads = null;
searchMonList.innerHTML = ""; searchMonList.innerHTML = "";
}; };
const s_sortList = s_controlDiv.querySelector(".sort-list"); const s_sortList = s_controlDiv.querySelector(".sort-list");
const s_sortReverse = s_controlDiv.querySelector("#sort-reverse"); const s_sortReverse = s_controlDiv.querySelector("#sort-reverse");
//对搜索到的Cards重新排序 //对heads重新排序
function reSortCards() function sortHeadsArray(heads)
{ {
const sortIndex = parseInt(s_sortList.value,10); const sortIndex = parseInt(s_sortList.value,10);
const reverse = s_sortReverse.checked; const reverse = s_sortReverse.checked;
let headsArray = heads.concat();
searchMonList.classList.add("display-none");
let fragment = document.createDocumentFragment(); //创建节点用的临时空间
let headsArray = Array.from(searchMonList.children);
headsArray.sort((head_a,head_b)=>{ headsArray.sort((head_a,head_b)=>{
let sortNumber = sort_function_list[sortIndex].function(head_a.card,head_b.card); const card_a = head_a.card,card_b = head_b.card;
let sortNumber = sort_function_list[sortIndex].function(card_a,card_b);
if (reverse) sortNumber *= -1; if (reverse) sortNumber *= -1;
return sortNumber; return sortNumber;
}); });
headsArray.forEach(h=>fragment.appendChild(h));
return headsArray;
}
//对搜索到的Cards重新排序
function reSortCards()
{
searchMonList.classList.add("display-none");
let fragment = document.createDocumentFragment(); //创建节点用的临时空间
const headsArray = sortHeadsArray(searchMonList.originalHeads);
headsArray.forEach(head=>fragment.appendChild(head));
searchMonList.appendChild(fragment); searchMonList.appendChild(fragment);
searchMonList.classList.remove("display-none"); searchMonList.classList.remove("display-none");
} }