如果你總是有一個字母,你可以按數字和第一個字母排序。 const array = ["B3", "D2", "F1", "A9", "D12", "A2", "C1", "Z0", "B1"];array.sort((a, b) => a.slice(1) - b.slice(1) || a[0].localeCompare(b[0]));console.log(...array); 如果有多個字母,可以使用正則表達式,只得到數字和非數字,并將它們分隔為一個對象。 const getValues = string => ({ letters: string.match(/\D+/)[0], digits: string.match(/\d+/)[0] }), array = ["B3", "D2", "F1", "A9", "D12", "A2", "C1", "Z0", "B1"];array.sort((a, b) => { const [aa, bb] = [a, b].map(getValues); return aa.digits - bb.digits || aa.letters.localeCompare(bb.letters);});console.log(...array);