A common interview question is to write
a
function
that
converts
a
string
into
an
integer e.g. "123"
=> 123
.
This
function
is commonly
called
atoi
because
we
are
converting
an
ASCII
string
into
an
integer.
In this lesson we cover the proper way to do this in JavaScript which is parseInt
along with implementing it using basic ascii math.
Writing a function whichi convert string to number, to do that
1. Convert each "string" char to ASCII code by using
str.charCodeAt(index)
2. Each round, we should increase the acc value by *10
function atoi (str: string): number { const zeroCode = '0'.charCodeAt(0); console.log("zeroCode", zeroCode); let sub = 1; if(str[0] === '-') { sub = -1; str = str.substring(1); console.log("sub string", str); } return sub * str.split('') .reduce((acc, curr) => { acc = acc * 10 + (curr.charCodeAt(0) - zeroCode) return acc; }, 0) } console.log(atoi("123")); //123 console.log(atoi("-123")); //-123
import { atoi } from './atoi'; test('basic', () => { expect(atoi('123')).toBe(123); expect(atoi('-1123')).toBe(-1123); });