[阿里巴巴最新面试题----JavaScript中map(parseInt)的问题]

简介: [阿里巴巴最新面试题----JavaScript中map(parseInt)的问题]

[阿里巴巴最新面试题----JavaScript中map(parseInt)的问题]

问题

利用map()把字符串变成整数

let arr = [10.18,0,10,25,23];
arr = arr.map(parseInt);
console.log(arr);

Output:

[10, NAN, 2, 2, 11]

原因

map()有三个参数:value, index, array,后两个为可选参数

  • 调用map函数时,三个参数都会传入map内的函数中
  • 在这道题中,parseInt有两个参数,字符串和进制
  • 所以,map会将value和index传入parseInt函数

实际上最终的效果是:

parseInt("10.18", 0);  -> 10
parseInt("0", 1);  -> NAN
parseInt("10", 2);  -> 2
parseInt("25", 3);  -> 2
parseInt("23", 4);  -> 11

想要正确转换的解决办法

  1. Number
let arr = [10.18,0,10,25,23];
console.log(arr.map(Number));
  1. 自定义
let arr = [10.18,0,10,25,23];
console.log(arr.map((value)=>{
    return parseInt(value);
}))

补充:

有关parseInt的radix,当遇到0、undefined或未被指定时,parseInt有如下行为:

1)被转换的字符串起于"0x"/“0X” --> 十六进制转为十进制;

2)被转换的字符串起于"0" --> 八进制或十进制(由解释器决定)转为十进制;

3)被转换字符串起于其他值 --> 十进制转为十进制

目录
相关文章
|
4天前
|
存储 JavaScript 索引
js开发:请解释什么是ES6的Map和Set,以及它们与普通对象和数组的区别。
ES6引入了Map和Set数据结构。Map的键可以是任意类型且有序,与对象的字符串或符号键不同;Set存储唯一值,无重复。两者皆可迭代,支持for...of循环。Map有get、set、has、delete等方法,Set有add、delete、has方法。示例展示了Map和Set的基本操作。
17 3
|
23天前
|
前端开发 JavaScript 网络协议
前端最常见的JS面试题大全
【4月更文挑战第3天】前端最常见的JS面试题大全
45 5
|
23天前
|
JavaScript 前端开发 索引
问js的forEach和map的区别
JavaScript中的`forEach`和`map`都是数组迭代方法。`forEach`遍历数组但不修改原数组,无返回值;它接受回调函数处理元素。`map`则遍历数组并返回新数组,新数组元素为回调函数处理后的结果。两者都接收元素、索引和数组作为回调函数参数。
21 7
|
1月前
|
JavaScript 前端开发
解释 JavaScript 中的`map()`、`filter()`和`reduce()`方法的用途。
解释 JavaScript 中的`map()`、`filter()`和`reduce()`方法的用途。
19 1
|
3月前
|
JavaScript 前端开发 定位技术
JavaScript 中如何代理 Set(集合) 和 Map(映射)
JavaScript 中如何代理 Set(集合) 和 Map(映射)
50 0
|
4天前
|
存储 安全 Java
[Java基础面试题] Map 接口相关
[Java基础面试题] Map 接口相关
|
12天前
|
JavaScript 前端开发 测试技术
「一劳永逸」送你21道高频JavaScript手写面试题(上)
「一劳永逸」送你21道高频JavaScript手写面试题
36 0
|
1月前
|
存储 JavaScript
JS中Map对象与object的区别
JS中Map对象与object的区别
|
1月前
|
设计模式 JavaScript 前端开发
最常见的26个JavaScript面试题和答案
最常见的26个JavaScript面试题和答案
47 1
|
1月前
|
存储 算法 Java
超全面!阿里巴巴最新发布23年秋招200道Java面试题(含答案)
马上过34岁生日了,和大家聊聊最近的情况 半年前还在迷茫该学什么,怎样才能走出现在的困境,半年后已经成功上岸阿里,感谢在这期间帮助我的每一个人。 面试中总结了200道经典的Java面试题,里面包含面试要回答的知识重点,并且我根据知识类型进行了分类,可以说非常全面了~ 因为篇幅原因,大部分的内容就不给大家一一展示了,需要获取的小伙伴可以直接点击此处取到! Java平台相关 1、JDK、JRE、JVM 分别是什么关系? 2、为什么 Java 被称作是“平台无关的编程语言”? 3、Java 和 C++ 的区别? 4、什么是字节码?采用字节码的最大好处是什么? 5、Java运行的过程? 6、
93 4