zl程序教程

您现在的位置是:首页 >  其它

当前栏目

[TS] Parse a string to an integer

string to an TS Integer parse
2023-09-14 09:00:51 时间

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);
});