[TS] Parse a string to an integer

Posted Answer1215

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[TS] Parse a string to an integer相关的知识,希望对你有一定的参考价值。

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

 

以上是关于[TS] Parse a string to an integer的主要内容,如果未能解决你的问题,请参考以下文章