给定一个表示数字的字符串,使用 parseInt 将字符串转换为数字。我写了一个工作函数,但没有考虑十进制数字。有没有办法使用 parseInt 转换小数?这是我试图解释小数的远见。这样做的问题是返回 NaN。我想不出实现从结果中过滤 NaN 的解决方案。最终目标是比较两个字符串。我的解决方案必须使用 parseInt。
function convertStr(str1, str2) {
let num1 = str1.split('')
let num2 = str2.split('');
num1 = num1.map(str => parseInt(str));
num2 = num2.map(str => parseInt(str));
console.log(num1);
console.log(num2);
}
任何帮助将不胜感激。
我认为这是您正在寻找的好一步:
问题是:遇到十进制值时,您希望输出什么?
// Soluce to replace NaN by '.'
function convertStrReplace(str1) {
let num1 = str1.split('')
num1 = num1.map(str => parseInt(str)).map(x => isNaN(x) ? '.' : x);
console.log(num1);
}
// Soluce to ignore NaN
function convertStrIgnore(str1) {
let num1 = str1.split('')
num1 = num1.map(str => parseInt(str)).filter(x => !isNaN(x));
console.log(num1);
}
convertStrReplace('17,52');
convertStrIgnore('17,52');
语法替代
function convertStrFilter(str1) {
const num1 = [
...str1,
].map(str => parseInt(str)).filter(x => !isNaN(x));
console.log(num1);
}
convertStrFilter('17,52');
关于整数和字符串差异的说明
// String and integer differences
// Put a number into a string
const str = '9000';
console.log(typeof str, str);
// Put a number into a number
const number = 9000;
console.log(typeof number, number);
// Compare both (compare value and type)
console.log('equality ===', str === number);
// Compare both (compare value)
console.log('equality ==', str == number);
const numberFromString = parseInt(str);
console.log(typeof numberFromString, numberFromString);
// Compare both (compare value and type)
console.log('equality ===', number === numberFromString);