我在bahrein
下有一个数组,我希望按每个项目的索引排序。我的裸代码如下所示。
var bahrein = [
{id: 1, name: "Josef"},
{id: 3, name: "Billy"},
{id: 0, name: "Jane"},
{id: 2, name: "Mack"}
];
for (i = 0; i < bahrein.length; i++){
document.getElementById("show").innerHTML += "<p>"+bahrein[i].name+"</p>";
}
&#13;
<div id="show"></div>
&#13;
我为每个项目分配了ID,但是我将它们排除在外。我想知道的是如何以编程方式使用sort()
函数按顺序列出列表中的名称。
现在我的innerHTML按照它们的编写顺序显示列表(即:Josef
,Billy
,Jane
和Mack
)。我想按照ID的顺序显示它们(例如:Jane
,Josef
,Mack
,Billy
)。
答案 0 :(得分:1)
您可以对数据使用sort()
方法,然后将其附加到html。
var bahrein = [{id: 1, name: "Josef"},{id: 3, name: "Billy"},{id: 0, name: "Jane"},{id: 2, name: "Mack"}];
let show = document.getElementById("show")
bahrein
.sort((a, b) => a.id - b.id)
.forEach(e => show.innerHTML += `<p>${e.name}</p>`)
<div id="show"></div>
您还可以创建已排序的html字符串,然后将其附加到html。
var bahrein = [{id: 1, name: "Josef"},{id: 3, name: "Billy"},{id: 0, name: "Jane"},{id: 2, name: "Mack"}];
let sorted = bahrein
.sort((a, b) => a.id - b.id)
.map(e => `<p>${e.name}</p>`)
.join('')
document.getElementById("show").innerHTML = sorted
<div id="show"></div>
答案 1 :(得分:-1)