JS 實現:駝峰式轉下換線
阿新 • • 發佈:2018-12-17
方法一:用 map 方法實現
function upperCaseToUnderLine(val, index, arr){ if(/[A-Z]/.test(val)){ if(index===0){ return val.toLowerCase(); }else{ return '_'+val.toLowerCase(); } }else{ return val; } } function toUnderline(arr){ if(typeof arr === 'string'){ return [].map.call(arr,upperCaseToUnderLine).join(''); // Array.prototype.map.call(arr, upperCaseToUnderLine).join(''); }else{ return arr.map(upperCaseToUnderLine).join(''); } } var a = 'AppModuleName'; var res1 = [].map.call(a,upperCaseToUnderLine).join(''); //app_module_name var res2 = toUnderline(a); //app_module_name
方法二:用 reduce 方法實現
function upperCaseToUnderLine(previousValue, currentValue, currentIndex, array){ if(/[A-Z]/.test(currentValue)){ currentValue = currentValue.toLowerCase(); if(currentIndex===0){ return previousValue + currentValue; }else{ return previousValue + '_' + currentValue; } }else{ return previousValue + currentValue; } } function toUnderLine(arr){ if(typeof arr === 'string'){ arr = arr.split(''); } return arr.reduce(upperCaseToUnderLine,''); } var a = 'AppName'; var res1 = toUnderLine(a); //app_name var res2 = [].reduce.call(a,upperCaseToUnderLine,''); //app_name