將用駝峰命名的字符串轉為下划線命名(面試題)


實現將對象下所有key由駝峰/Pascal轉成下划線分割:

toSnakeCase({
   UserName: 'toutiao',
    group: {
       GroupName: 'douyin'
   }        
}) => {
    user_name: 'toutiao',
    group: {
        group_name: 'douyin'
    }
};
stringObject.replace(regexp/substr,replacement)
參數 描述
regexp/substr

必需。規定子字符串或要替換的模式的 RegExp 對象。

請注意,如果該值是一個字符串,則將它作為要檢索的直接量文本模式,而不是首先被轉換為 RegExp 對象。

replacement 必需。一個字符串值。規定了替換文本或生成替換文本的函數。

eplacement 可以是字符串,也可以是函數。如果它是字符串,那么每個匹配都將由字符串替換。但是 replacement 中的 $ 字符具有特定的含義。如下表所示,它說明從模式匹配得到的字符串將用於替換。

字符 替換文本
$1、$2、...、$99 與 regexp 中的第 1 到第 99 個子表達式相匹配的文本。
$& 與 regexp 相匹配的子串。
$` 位於匹配子串左側的文本。
$' 位於匹配子串右側的文本。
$$ 直接量符號。

解決方法:

//方法 
objectHumpToLine(obj) {
        var newObj = new Object()
        for (let key in obj) {
            newObj[key.replace(/([A-Z])/g, "_$1").toLowerCase()] = obj[key]
        }
        return newObj
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM