var strArr = ["[1,2,3,4]","[1,2,3,4"]];
var arr1 = strArr[0].match(/\d+/g).map(Number);
我知道 map()
方法创建了一个新数组,其结果是对调用数组中的每个元素调用提供的函数。这里 Number
是一个包装对象,我无法理解发生了什么。
我的理解是,如果我控制日志删除 map 方法,我得到一个字符串数组,而包括 map 方法我得到一个数字数组。我想知道 map 如何能够获取每个字符串并转换为数字。
原文由 Sai 发布,翻译遵循 CC BY-SA 4.0 许可协议
相当于
Number
尽管传递了额外的参数仍然有效的原因是因为它忽略了除第一个参数之外的所有内容。你不能指望每个函数都有相应的行为,因为并非所有函数都会忽略除第一个参数之外的所有内容,但在这种情况下它是一个方便的快捷方式。另一个很好的例子是将 truthy 和 falsy 值转换为布尔值: