我需要一些帮助。我有一个多维数组,其中包含一个长度为 2 ["name","surname"] 的子数组,它们都是第一个字母大写的字符串值。
请求是在窗口加载时显示数组的前 10 个元素。之后,我使用一个按钮,每次按下时加载 10 个以上的元素。此功能完美无缺。
我面临 2 个问题:-我有 2 个按钮,按姓名排序和按姓氏排序。你猜对了。如果按下“按名称排序”btn,则必须按名称对元素进行排序,如果按下“按姓氏排序”则相反。
以下功能运行良好。排序姓名和姓氏。问题是在对姓名进行排序时,姓氏应该跟随姓名到正确的位置。现在我可以对姓名和姓氏进行排序,结果是排序后有其他全名。
-第二个问题,如果我们修复第一个问题,如果我加载 10 个或更多元素(通过按“加载更多”btn),我将需要按 sort btn 对它们进行排序。我想我应该对初始数组进行排序,然后开始从排序列表中取出项目。但是如何使用 ["Name","Surname"] 的子数组对数组进行排序?先感谢您
function sortByName(e) {
e.preventDefault();
let itemList = document.getElementById('item-list-two').children;
let names = [];
const itemListArray = Array.from(itemList);
for (let i = 0; i < itemListArray.length; i++) {
names.push(itemListArray[i].innerText.toUpperCase());
names.sort();
}
for (let i = 0; i < itemList.length; i++) {
itemList[i].textContent = names[i].charAt(0) + names[i].slice(1).toLowerCase();
}
}
function sortBySurname(e) {
e.preventDefault();
let itemList = document.getElementById('item-list-three').children;
let surnames = [];
const itemListArray = Array.from(itemList);
for (let i = 0; i < itemListArray.length; i++) {
surnames.push(itemListArray[i].innerText.toUpperCase());
surnames.sort();
}
for (let i = 0; i < itemList.length; i++) {
itemList[i].textContent = surnames[i].charAt(0) + surnames[i].slice(1).toLowerCase();
}
}