14 lines
1.0 KiB
JavaScript
14 lines
1.0 KiB
JavaScript
// 注意,仅为提供面试思路,实现不严谨
|
||
export const string2int = (s) => {
|
||
// 如果是机器检查。这道题很简单,*1就完了, 或者Math.floor,或者 +'123'。都可以绕开系统的检查。
|
||
// 但是如果是面试,就必须要用到map和reduce,上述方法显然不是面试官想听到的。
|
||
// 而这俩都是数组的方法,因此首先用split('')将'123'变为['1','2','3']。
|
||
// reduce常规用法就是 total * 10 + currentValue。至于map,需要思考如何用map将字符串数组变为数字数组。
|
||
// 某人问过我这道题,由于网上写的基本都是错的,面试可能通不过,特记录于此。
|
||
|
||
return s.split('').map(i => i.charCodeAt() - 48).reduce((total, currentValue) => total * 10 + currentValue)
|
||
|
||
// 温馨提示:面试不一定需要说出你知道的或者你的各种想法,而是要尽可能准确的回答面试官想知道的答案。
|
||
// 特别对于职业发展来说,如果你的真实想法不一定是面试官希望听到的,就不要说。
|
||
}
|