簡體   English   中英

按字母順序對數組排序並返回每個字符的數字表示

[英]Sort an array alphabetically and return a number representation for every character

我想嘗試制作自己的 function。我想按升序對字符數組進行排序,並將每個字符的出現次數返回為緊湊型數字。

例子:

function numberRepresentation(arr) {
    // arr is an array
    // return a number

    /*
    ex. arr=[b,a,a,a,c,b,a]
    after sorting array will look like arr=[a,a,a,a,b,b,c]
    occurrence of characters -> a = 4, b = 2, c = 1 
    so output will be 421
    */
}

我該怎么做?

function numberRepresentation(arr) {
    return arr.reduce((counts, letter) => {
        const code = letter.charCodeAt(0)
        counts[code] = counts[code] + 1 || 1
        return counts
    }, []).join('')
}

解釋:

我們只是計算每個字母出現的次數,但我們使用一個簡單的數組和字符代碼作為索引。 因此,我們會自動獲得按字母順序排列的字母計數列表(因為字符代碼 go 按 abc 順序排列)。 所以我們需要做的就是連接所有計數並返回。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM