Javascript按子阵列ID排序数组

时间:2017-12-12 22:17:06

标签: javascript

我在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;
&#13;
&#13;

我为每个项目分配了ID,但是我将它们排除在外。我想知道的是如何以编程方式使用sort()函数按顺序列出列表中的名称。

现在我的innerHTML按照它们的编写顺序显示列表(即:JosefBillyJaneMack)。我想按照ID的顺序显示它们(例如:JaneJosefMackBilly)。

2 个答案:

答案 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)

它没有回答你的问题,但你可以使用&#34; lodash&#34;做同样的事。

rowconfigure

您可以详细了解here