Skip to main content

๐Ÿ“„ Sort Array

Question Descriptionโ€‹

็ตฆๅฎšไธ€ๅ€‹่‹ฅๅนฒๆ•ธๅญ—็š„้™ฃๅˆ—๏ผŒ่ซ‹ไฝฟ็”จ sort ๅ‡ฝๅผ๏ผŒๅฐ‡้™ฃๅˆ—้€ฒ่กŒๆŽ’ๅบ๏ผŒไธฆ่ซ‹ๅฐ‡ไธ‹ๅˆ—ๅ…ฉ็จฎ็‹€ๆณ๏ผŒ้ƒฝๆไพ›่งฃๆณ•๏ผš

  1. ็”ฑๅฐๅˆฐๅคงๆŽ’ๅบ(ๅ‡ๅ†ช)
  2. ็”ฑๅคงๅˆฐๅฐๆŽ’ๅบ(้™ๅ†ช)

ๅ‡ๅ†ชๆŽ’ๅบโ€‹

const numbers = [10, 5, 50, 2, 200];

// ไฝฟ็”จๆฏ”่ผƒๅ‡ฝๅผ
numbers.sort(function (a, b) {
return a - b;
});

console.log(numbers); // [2, 5, 10, 50, 200]

้™ๅ†ชๆŽ’ๅบโ€‹

const numbers = [10, 5, 50, 2, 200];

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

console.log(numbers); // [200, 50, 10, 5, 2]

ๆ•…ๆ„ๅกžๅ…ฅ stringโ€‹

const mixedNumbers = [10, '5', 50, '2', 200];

mixedNumbers.sort(function (a, b) {
return Number(a) - Number(b);
});

console.log(mixedNumbers); // ['2', '5', 10, 50, 200]

ไฝ†้€™ๅ€‹่งฃๆณ•็„กๆณ•ๆŽ’้™ค๏ผŒ็„กๆณ•่ฝ‰ๆ›็‚บๆ•ธๅญ—็š„ๅญ—ไธฒ๏ผŒไพ‹ๅฆ‚ 'iphone', 'ipad' ็ญ‰็ญ‰ใ€‚้€™ไบ›ๅญ—ไธฒๆœƒ่ขซ่ฝ‰ๆ›็‚บ NaN๏ผŒ้›–็„ถๅฏ่ƒฝๆŽ’ๅบไธŠๆœƒๅœจๆœ€ๅพŒ้ข๏ผŒไฝ†ไนŸๅฏ่ƒฝๅ› ็‚บไธๅŒ็€่ฆฝๅ™จ๏ผŒ็”ข็”ŸไธๅŒ็ตๆžœใ€‚้€™็จฎ็‹€ๆณไธ‹๏ผŒๅช่ƒฝ่€ƒๆ…ฎไฝฟ็”จ filter ๅ…ˆ้€ฒ่กŒๆŽ’้™ค้‡็ต„้™ฃๅˆ—ใ€‚

Object ๆŽ’ๅบโ€‹

const mockArray = [
{ type: 'a', label: 1 },
{ type: 'a', label: 2 },
{ type: 'c', label: 1 },
{ type: 'c', label: 3 },
{ type: 'b', label: 2 },
];