如何通过属性对对象数组进行排序?

时间:2020-07-30 18:27:25

标签: javascript arrays json sorting

如何通过score对数据进行排序并将其显示在<table>中?

[
  { "name": "xyz", "email": "xyz@gmail.com", "score": 0 },
  { "name": "abc", "email": "abc@gmail.com", "score": 1 }
]

3 个答案:

答案 0 :(得分:0)

data = [
  { "name": "xyz", "email": "xyz@gmail.com", "score": 0 },
  { "name": "abc", "email": "abc@gmail.com", "score": 1 }
]

data.sort(function(a, b){
   return a.score - b.score;
})

答案 1 :(得分:0)

您可以尝试这样做。它将按“分数”排序。

list = [
  { "name": "xyz", "email": "xyz@gmail.com", "score": 3 },
  { "name": "abc", "email": "abc@gmail.com", "score": 2 },
  { "name": "ert", "email": "ert@gmail.com", "score": 0 },
  { "name": "zsr", "email": "zsr@gmail.com", "score": 1 }
]

list.sort((a, b) => (a.score > b.score) ? 1 : -1)

console.log(list)

答案 2 :(得分:0)

const data = [
  { "name": "xyz", "email": "xyz@gmail.com", "score": 0 },
  { "name": "abc", "email": "abc@gmail.com", "score": 1 }
].sort((a, b) => b.score - a.score);
const table = document.createElement('table');
document.body.append(table);
const tr = document.createElement('tr');
table.append(tr);
for (const key of Object.keys(data[0])) {
  const th = document.createElement('th');
  th.textContent = key;
  tr.append(th);
}
data.forEach(datum => {
  const trB = document.createElement('tr');
  table.append(trB);
  Object.values(datum).forEach(value => {
    const td = document.createElement('td');
    td.textContent = value;
    trB.append(td);
  });
});