码迷,mamicode.com
首页 > 其他好文 > 详细

[TS] Parse a string to an integer

时间:2017-10-03 16:58:01      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:class   char   interview   int   because   ber   imp   reac   div   

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

标签:class   char   interview   int   because   ber   imp   reac   div   

原文地址:http://www.cnblogs.com/Answer1215/p/7623896.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!