我正在使用Wordpress作为后端来制作此菜单页面。因此,我获取了元素,将它们放入模板并附加到父元素,但是现在我需要弄清楚如何按字母顺序对菜单项进行排序。我不知道在获取和附加数据后应该编写新函数还是对获取和附加数据的函数系列的一部分进行排序。
这是我使用的:
const template = document.querySelector("#menutemplate").content;
const newSection = document.createElement("section");
const parent = document.querySelector("main");
function getMenu() {
fetch("MY LINK GOES HERE")
.then(res => res.json())
.then(showMenu)
}
function showMenu(menuItems) {
//console.log(menuItems)
menuItems.forEach(showItem)
}
function showItem(item) {
//console.log(item)
const clone = template.cloneNode(true);
clone.querySelector(".product").textContent=item.title.rendered
clone.querySelector(".price").textContent=item.acf.volunteer_price + " dkk";
newSection.appendChild(clone);
parent.appendChild(newSection);
}
getMenu();
答案 0 :(得分:2)
您可以使用SELECT
a."Building_name" "Building name A",
b."Building_name" "Building name B",
ST_Distance(a."Geom", b."Geom") distance
FROM
polygons a, polygons b
WHERE
a."Building_ID" <> b."Building_ID"
-- optionally add a ST_DWithin condition to improve performance:
-- AND ST_DWithin(a."Geom", b."Geom", 1000)
ORDER BY
distance
LIMIT 1;
吗?
Array.prototype.sort
答案 1 :(得分:0)
您的组件应准备好数据并准备提供服务;这意味着从API调用获得结果之后,应该在将数据提供给reqUserId
之前对其进行排序。
例如,假设您拥有:
showMenu
您应该在这里对其进行排序...
const menuItems = [
{label: "Label 1", url: "Url 1"},
{label: "Label 2", url: "Url 2"},
]
具有功能
function getMenu(){
fetch("MY LINK GOES HERE")
.then(res => res.json())
.then(items => items.sort(sortMenuItems)) // <---- Sort goes here
.then(showMenu)
}
答案 2 :(得分:0)
尝试了几种解决方案后,没有找到如何进行javascript排序的方法,我选择了另一种方法,并通过在我用来获取数据的链接中添加“&order = asc&orderby = title”来获取已排序的数据!不幸的是,我由于没有意识到这一点而浪费了很多时间。 :))