`

Array.map的细节

阅读更多
What is the result of this expression?

["1", "2", "3"].map(parseInt);
//map的用法是:对于数组中的每一个元素都调用map里面的回调函数,将结果返回形成新的数组。


结果竟然是:
[1, NaN, NaN]


原来map的传入给回调函数的参数有三个:元素、元素下标和数组。用下面的方法就一目了然了。
["1", "2", "3"].map(function() { console.log(arguments); });


结果如下:
["1", 0, ["1", "2", "3"]]
["2", 1, ["1", "2", "3"]]
["3", 2, ["1", "2", "3"]]   


而parseInt所需要的参数为两个,第一个是需要转化为整数的输入,第二个是可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。如果省略该参数或其值为 0,则数字将以 10 为基础来解析。如果它以 “0x” 或 “0X” 开头,将以 16 为基数。如果该参数小于 2 或者大于 36,则 parseInt() 将返回 NaN。

所以,就出现了上面的一幕。

正确的方法应该怎么办呢?

其实很简单:
["1", "2", "3"].map(function(str) {
    return str - 0;
});
分享到:
评论

相关推荐

    JavaScript Array map.docx

    ### JavaScript Array map() 方法详解 #### 一、概述 在JavaScript中,`Array.prototype.map()` 是一种非常实用的方法,用于创建一个新数组,其结果是调用提供的函数处理原数组的每一个元素。此方法不改变原数组,...

    js代码-let newArrayData=arrayData.map(it

    我们来详细探讨一下`map()`函数以及在给定的`js代码-let newArrayData=arrayData.map(it)`语句中可能涉及的知识点。 首先,`arrayData`是一个数组,可能是包含各种类型数据(如数字、字符串或对象)的集合。`...

    js Map 工具类 MapUtil

    在JavaScript的世界里,`Map`对象是一个非常重要的数据结构,它允许我们存储键值对,其中键可以是任何类型的...在阅读`MapUtil.js`源码时,可以关注这些方法的实现细节,理解它们如何优化和扩展了原生`Map`对象的能力。

    exercise-5.3

    用于将数据从数组中拉出的array.map() , array.forEach , array.filter()和array.filter() array.reduce()方法 细节 可交付成果 回购至少包含以下内容: main.js items.json <-为您提供。 要求 没有JSHint...

    js代码-手写Array的map方法

    在JavaScript中,`Array.prototype.map()` 是一个非常重要的方法,它允许我们遍历数组中的每个元素,并根据提供的函数返回一个新的数组。这个新数组中的元素是原数组元素经过处理后的结果。在本项目中,我们将深入...

    Linqer:LINQJavaScript端口

    林奇一个npm包,用于实现.NET LINQ,例如对javascript的查询安装使用可以: npm install linqer执照...ES5.1,实现: Array.prototype.map Array.prototype.reduce 数组原型Array.prototype.Every Array.prototype.filt

    Assignment-07-B

    array.map() array.filter() array.reduce() document.createTextNode() .appendChild() 细节 可交付成果 两个单独的存储库(项目) (1)回购至少包含: main.js items.js index.html (2)回购至少包含...

    Assignment-7.1

    array.map() array.filter() array.reduce() document.createTextNode() .appendChild() 细节 可交付成果 两个单独的存储库(项目) (1)回购至少包含: main.js items.js index.html (2)回购至少包含...

    Assignment-07

    15年7月13日该作业将于15年5月16日上午8点到期目标学习目标完成此任务后,您应该: 了解物体了解数组和循环能够将多个步骤分解为JS中的一系列语句绩效目标完成分配后,您便可以有效地使用array.forEach() array.map...

    number-array-源码.rar

    本篇文章将深入探讨“number-array-源码.rar”中的核心知识点,以帮助开发者更好地掌握数组处理的底层原理,特别是针对数值数组的实现细节。 1. **数组的基本概念** 数组是一种线性数据结构,它包含相同类型的数据...

    ECMAScript-Edition5-小试

    - **数组方法**:如 `Array.isArray()` 用于判断参数是否为数组类型,还有 `Array.prototype.forEach()`, `Array.prototype.map()`, `Array.prototype.filter()`, `Array.prototype.reduce()` 等一系列实用方法,极...

    JS彩票号码随机生成数字代码.zip

    7. **优化性能**:为了提高性能,开发者可能使用了`Array.from()`、`Array.fill()`或`Array.prototype.map()`等方法来处理数组,或者使用`let`而不是`var`来避免变量的作用域问题。 8. **错误处理**:良好的代码会...

    js代码-数组转换1

    1. **映射(map)**:`Array.prototype.map()` 方法创建一个新数组,其结果是调用提供的函数对原数组中的每个元素执行后的返回值。例如,如果你有一个包含数字的数组,你可以通过map将它们全部平方: ```javascript ...

    js两个数组对应清除的问题

    在JavaScript编程中,数组是常用的数据...在博客文章《js两个数组对应清除的问题》中,作者可能深入探讨了这些方法的实现细节、性能分析以及不同场景下的最佳实践。通过阅读原文,你可以获取更具体的信息和示例代码。

    如何用JS模拟实现数组的map方法

    Array.prototype.newMap = function(fn) { var newArr = []; for (var i = 0; i < this.length; i++) { newArr.push(fn(this[i], i, this)); } return newArr; }; ``` 在这个实现中,我们创建了一个新的空数组...

    这本书收集了一些在日常使用JavaScript时发现和学习到的有用的、未知的、被低估的JavaScript函数.zip

    以上只是部分JavaScript中的重要知识点,实际的书籍可能会涵盖更多细节和深度的探讨,如错误处理、模块系统、性能优化等。通过深入理解和实践这些函数和特性,开发者可以提升JavaScript编程的效率和质量。

    js代码-数组求和多种方法

    const sum = array.map(num => num).reduce((acc, cur) => acc + cur, 0); console.log(sum); // 输出:15 ``` 5. **Array.from与reduce** 另一个有趣的组合是`Array.from`(用于创建新数组)和`reduce`: ``...

    jquery map方法使用示例

    jQuery.map(array, callback(elementOfArray, indexInArray)) -> Array - `array`:这是一个数组或类数组对象,map方法将遍历这个集合中的每个元素。 - `callback`:这是对每个元素执行的函数,它接受两个参数,...

    JavaScript中的异步并行串行foreach

    const promises = array.map(element => callback(element)); return Promise.all(promises); } const arr = [1, 2, 3, 4, 5]; asyncForEach(arr, element => new Promise(resolve => setTimeout(() => ...

    OpenGL3.3_Lighting_SpecularMap

    这是OpenGL的一个版本,它引入了诸多新特性,如顶点数组对象(VertexArray Objects, VAOs)、纹理矩形、浮点纹理支持、混合颜色分离等,旨在提高性能和灵活性,同时淘汰了一些旧的、效率低下的功能。 高光贴图...

Global site tag (gtag.js) - Google Analytics