Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

จัดเรียงอาร์เรย์อ็อบเจกต์ตาม property age - JavaScript

สมมติว่าเรามีอาร์เรย์อ็อบเจกต์ดังนี้:

const people = [
  {"id":1, "name":"Andrew", "age":30, "gender":"m", "category":"G"},
  {"id":2, "name":"Brandon", "age":25, "gender":"m", "category":"G"},
  {"id":3, "name":"Christine", "age":20, "gender":"m", "category":"G"},
  {"id":4, "name":"Elena", "age":29, "gender":"W", "category":"M"}
];

เราต้องเขียนฟังก์ชันที่เรียงอาร์เรย์ในที่เดิม (in-place) ตาม property age จากน้อยไปมาก

ผลลัพธ์ควรเป็น:

const output = [
  {"id":3, "name":"Christine", "age":20, "gender":"m", "category":"G"},
  {"id":2, "name":"Brandon", "age":25, "gender":"m", "category":"G"},
  {"id":4, "name":"Elena", "age":29, "gender":"W", "category":"M"},
  {"id":1, "name":"Andrew", "age":30, "gender":"m", "category":"G"}
];

ตัวอย่าง

โค้ดต่อไปนี้เป็นตัวอย่าง:

const people = [
  {"id":1, "name":"Andrew", "age":30, "gender":"m", "category":"G"},
  {"id":2, "name":"Brandon", "age":25, "gender":"m", "category":"G"},
  {"id":3, "name":"Christine", "age":20, "gender":"m", "category":"G"},
  {"id":4, "name":"Elena", "age":29, "gender":"W", "category":"M"}
];

const sorter = (a, b) => {
  return a.age - b.age;
};

const sortByAge = arr => {
  arr.sort(sorter);
};

sortByAge(people);
console.log(people);

ผลลัพธ์

จะแสดงผลในคอนโซลดังนี้:

[
  { id: 3, name: 'Christine', age: 20, gender: 'm', category: 'G' },
  { id: 2, name: 'Brandon', age: 25, gender: 'm', category: 'G' },
  { id: 4, name: 'Elena', age: 29, gender: 'W', category: 'M' },
  { id: 1, name: 'Andrew', age: 30, gender: 'm', category: 'G' }
]