【发布时间】:2018-01-19 14:38:26
【问题描述】:
var strArr = ["[1,2,3,4]","[1,2,3,4"]];
var arr1 = strArr[0].match(/\d+/g).map(Number);
我知道map() 方法创建了一个新数组,其结果是在调用数组中的每个元素上调用提供的函数。这里 Number 是一个包装对象,我无法理解发生了什么。
我的理解是,如果我通过控制台记录删除 map 方法,我会得到一个字符串数组,而包含 map 方法,我会得到一个数字数组。我想知道 map 如何获取每个字符串并转换为号码。
【问题讨论】:
-
顺便说一句,您可以在这种情况下使用
Number,但不能使用更常见的parseInt。map方法传递三个参数,parseInt传递两个参数,如果你不知道你在看什么,结果会很混乱。 -
@JeremyJStarcher
parseInt和Number即使只有一个参数也不是一回事。 -
@PatrickRoberts 我知道,但我看到很多人尝试以同样的方式使用它们,我想我会阻止潜在的混乱来源。
标签: javascript arrays