在 TypeScript 中排序陣列
TypeScript 允許對陣列進行不同的操作,排序是其中一種操作。本教程將討論 typescript 中陣列的排序。
在 TypeScript 中使用 sort()
方法對陣列進行排序
排序是使用 sort()
方法完成的。此方法對陣列中存在的元素進行排序,並將排序後的字串元素作為輸出返回給使用者。
sort()
方法預設按升序返回結果。陣列型別定義為 string[]
。
例子:
const myArray: string[] = ['A', 'B', 'D', 'X', 'C', 'F'];
myArray.sort();
console.log(`My sorted array is = ${myArray}`);
輸出:
My sorted array is = A,B,C,D,F,X
sort()
方法返回字串陣列,陣列元素按字母順序給出作為輸出。現在讓我們再舉一個字串陣列的例子。
例子:
const myFruits: string[] = ['Apple', 'Peach', 'Strawberry', 'Banana', 'Mango'];
myFruits.sort();
console.log(`My sorted fruits is = ${myFruits}`);
輸出:
My sorted fruits is = Apple,Banana,Mango,Peach,Strawberry
請注意,所有水果均按字母順序排序。
在 TypeScript 中對數字陣列進行排序
在 TypeScript 中對數字陣列進行排序並不像上面看起來那麼簡單,因為 sort()
方法返回字串陣列。執行邏輯運算以按升序和降序對數值陣列進行排序。
例子:
const numArray: number[] = [6,5,8,2,1];
numArray.sort();
console.log(`The sorted numebrs are = ${numArray}`);
輸出:
The sorted numebrs are = 1,2,5,6,8
上面的例子可以正常工作,但是如果我們新增一個最後一位為 0 的兩位或三位數字會發生什麼。讓我們舉個例子。
例子:
const numArray: number[] = [60,5,8,2,1];
numArray.sort();
console.log(`The sorted numebrs are = ${numArray}`);
輸出:
The sorted numebrs are = 1,2,5,60,8
上面的程式碼片段表明,即使 60
大於 8
,它仍然排在第一位,因為 sort()
方法返回一個字串陣列。在字串比較中,60
在 8
之前。
為了解決這個問題,我們必須在 sort()
方法中使用一個比較函式,這個函式將決定我們是要按升序還是降序排列陣列。
例子:
const numArray: number[] = [60,5,8,2,1];
numArray.sort(function(x,y) {
return x-y
});
console.log(`The sorted numebrs are = ${numArray}`);
輸出:
The sorted numebrs are = 1,2,5,8,60
結果以升序顯示。要按降序顯示結果,請按照以下示例進行操作。
例子:
const numArray: number[] = [60,5,8,2,1];
numArray.sort(function(x,y) {
return y-x
});
console.log(`The sorted numebrs are = ${numArray}`);
輸出:
The sorted numebrs are = 60,8,5,2,1
現在結果以降序顯示。function(x,y)
根據我們是否希望數字按升序或降序排列的邏輯進行操作。
在 TypeScript 中對物件陣列進行排序
TypeScript 允許我們對陣列中的物件進行排序。
例子:
var numArray: { num: number; }[] = [{ num: 7}, { num: 9 }, {num: 3}, {num: 6}, {num: 1}];
numArray.sort(function(x,y) {
if (x.num > y.num) {
return 1;
}
if (x.num < y.num) {
return -1;
}
return 0;
});
console.log('The sorted array of objects is as follow:');
console.log(numArray);
輸出:
The sorted array of objects is as follow:
[{
"num": 1
}, {
"num": 3
}, {
"num": 6
}, {
"num": 7
}, {
"num": 9
}]
程式碼示例顯示了已排序的物件陣列。在條件中,return 1
表明第一個在第二個之後。
return -1
表示第一次在第二次之前,return 0
表示它們是相等的。結果以升序顯示。
要按降序獲得結果,請將條件中的 -1
替換為 1
,反之亦然。
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn