const faculties = document.getElementsByClassName("faculty"); const alphabets = document.querySelectorAll("#alphabet>ul>a>li"); const indexes = document.querySelectorAll("#faculties>.index"); const arr = [...faculties]; const result = sortFaculties(arr); if (result) { result.forEach((el) => { // console.log(el); for (let i = 0; i < alphabets.length; i++) { if (el.letter.toUpperCase() === alphabets[i].innerText.trim()) { alphabets[i].classList.remove("hidden"); break; } } for (let i = 0; i < indexes.length; i++) { if (el.letter.toUpperCase() === indexes[i].children[0].innerText.trim()) { indexes[i].classList.remove("hidden"); indexes[i].classList.add("grid"); indexes[i].children[0].classList.remove("hidden"); break; } } let index = document.getElementById(el.letter.toUpperCase()); el.data.forEach((e) => { e.classList.remove("hidden"); index.append(e); }); }); } function sortFaculties(arr, empty) { if (!String.prototype.localeCompare) return null; const letters = "*abcdefghjklmnopqrstwxyz".split(""); const zh = "阿八嚓哒妸发旮哈讥咔垃妈拏噢妑七呥扨它穵夕丫帀".split(""); const segs = []; var curr; letters.forEach((el, i) => { curr = { letter: el, data: [] }; arr.forEach((e) => { // console.log(e); let e1 = e.innerText.replace(/^沈/, "审").replace(/^曾/, "增"); // console.log(e1); if ( (!zh[i - 1] || zh[i - 1].localeCompare(e1, "zh-CN") <= 0) && e1.localeCompare(zh[i], "zh-CN") == -1 ) { curr.data.push(e); } }); if (empty || curr.data.length) { segs.push(curr); curr.data.sort(function (a, b) { let a1 = a.innerText.replace(/^沈/, "审").replace(/^曾/, "增"); let b1 = b.innerText.replace(/^沈/, "审").replace(/^曾/, "增"); return a1.localeCompare(b1, "zh-CN"); }); } }); return segs; }