// 将字符串转化为整数 比如 ' -123' : -123 '1829 whdi ' : 1829
// 1. .trim()
// 2. 拿到数字的符号 - +
// 3. 取连续整数,非连续的后面的字符就不要了,舍弃
// 4. 溢出判断
function intNum(str) {
let secStr = str.trim() // trim() 不改变原字符串,所以就必须另外定义一个变量
let result = 0
let start = 0 // 当中下标来使用 而不是使用 for(i) 发现start非常好用
if (secStr.length == 0) {
return result
}
let sign = 1
if (secStr[start] == '-') { // 拿到当前的符号
sign = -1
start++ // 默认 每一个数字都会加符号的
} else {
start++
}
// 取出连续数字
while (start < secStr.length) {
if (secStr[start] == ' ' || typeof secStr[start] == String) {
return result
} else {
result = result * 10 + secStr[start++] * 1 * sign // 核心原理:上一次的结果*10 + sign*当前值
console.log(result);
}
}
return result
}
const num = intNum(" +123 345")
console.log(num);
// 1. .trim()
// 2. 拿到数字的符号 - +
// 3. 取连续整数,非连续的后面的字符就不要了,舍弃
// 4. 溢出判断
function intNum(str) {
let secStr = str.trim() // trim() 不改变原字符串,所以就必须另外定义一个变量
let result = 0
let start = 0 // 当中下标来使用 而不是使用 for(i) 发现start非常好用
if (secStr.length == 0) {
return result
}
let sign = 1
if (secStr[start] == '-') { // 拿到当前的符号
sign = -1
start++ // 默认 每一个数字都会加符号的
} else {
start++
}
// 取出连续数字
while (start < secStr.length) {
if (secStr[start] == ' ' || typeof secStr[start] == String) {
return result
} else {
result = result * 10 + secStr[start++] * 1 * sign // 核心原理:上一次的结果*10 + sign*当前值
console.log(result);
}
}
return result
}
const num = intNum(" +123 345")
console.log(num);
全部评论
相关推荐