[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的主要内容,如果未能解决你的问题,请参考以下文章

An exception has occurred, use %tb to see the full traceback.----parser.parse_args()报错

Wildfly 8.2.1 final throw AN EXCEPTION JBAS014676: Failed to parse configuration

记一次使用pm2运行node+ts项目,ts-node报错问题To load an ES module, set “type“: “module“ in the package.json or use

Template parse errors: Can't bind to 'ngModel' since it isn't a known property of &#

LINQ to Entities 无法识别方法“Int32 Parse(System.String)”方法,并且该方法无法转换为存储表达式

Convert a string into an ArrayBuffer