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() 方法详解 #### 一、概述 在JavaScript中,`Array.prototype.map()` 是一种非常实用的方法,用于创建一个新数组,其结果是调用提供的函数处理原数组的每一个元素。此方法不改变原数组,...
我们来详细探讨一下`map()`函数以及在给定的`js代码-let newArrayData=arrayData.map(it)`语句中可能涉及的知识点。 首先,`arrayData`是一个数组,可能是包含各种类型数据(如数字、字符串或对象)的集合。`...
在JavaScript的世界里,`Map`对象是一个非常重要的数据结构,它允许我们存储键值对,其中键可以是任何类型的...在阅读`MapUtil.js`源码时,可以关注这些方法的实现细节,理解它们如何优化和扩展了原生`Map`对象的能力。
用于将数据从数组中拉出的array.map() , array.forEach , array.filter()和array.filter() array.reduce()方法 细节 可交付成果 回购至少包含以下内容: main.js items.json <-为您提供。 要求 没有JSHint...
在JavaScript中,`Array.prototype.map()` 是一个非常重要的方法,它允许我们遍历数组中的每个元素,并根据提供的函数返回一个新的数组。这个新数组中的元素是原数组元素经过处理后的结果。在本项目中,我们将深入...
林奇一个npm包,用于实现.NET LINQ,例如对javascript的查询安装使用可以: npm install linqer执照...ES5.1,实现: Array.prototype.map Array.prototype.reduce 数组原型Array.prototype.Every Array.prototype.filt
15年7月13日该作业将于15年5月16日上午8点到期目标学习目标完成此任务后,您应该: 了解物体了解数组和循环能够将多个步骤分解为JS中的一系列语句绩效目标完成分配后,您便可以有效地使用array.forEach() array.map...
array.map() array.filter() array.reduce() document.createTextNode() .appendChild() 细节 可交付成果 两个单独的存储库(项目) (1)回购至少包含: main.js items.js index.html (2)回购至少包含...
array.map() array.filter() array.reduce() document.createTextNode() .appendChild() 细节 可交付成果 两个单独的存储库(项目) (1)回购至少包含: main.js items.js index.html (2)回购至少包含...
本篇文章将深入探讨“number-array-源码.rar”中的核心知识点,以帮助开发者更好地掌握数组处理的底层原理,特别是针对数值数组的实现细节。 1. **数组的基本概念** 数组是一种线性数据结构,它包含相同类型的数据...
- **数组方法**:如 `Array.isArray()` 用于判断参数是否为数组类型,还有 `Array.prototype.forEach()`, `Array.prototype.map()`, `Array.prototype.filter()`, `Array.prototype.reduce()` 等一系列实用方法,极...
7. **优化性能**:为了提高性能,开发者可能使用了`Array.from()`、`Array.fill()`或`Array.prototype.map()`等方法来处理数组,或者使用`let`而不是`var`来避免变量的作用域问题。 8. **错误处理**:良好的代码会...
1. **映射(map)**:`Array.prototype.map()` 方法创建一个新数组,其结果是调用提供的函数对原数组中的每个元素执行后的返回值。例如,如果你有一个包含数字的数组,你可以通过map将它们全部平方: ```javascript ...
在JavaScript编程中,数组是常用的数据...在博客文章《js两个数组对应清除的问题》中,作者可能深入探讨了这些方法的实现细节、性能分析以及不同场景下的最佳实践。通过阅读原文,你可以获取更具体的信息和示例代码。
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编程的效率和质量。
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(array, callback(elementOfArray, indexInArray)) -> Array - `array`:这是一个数组或类数组对象,map方法将遍历这个集合中的每个元素。 - `callback`:这是对每个元素执行的函数,它接受两个参数,...
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(() => ...
这是OpenGL的一个版本,它引入了诸多新特性,如顶点数组对象(VertexArray Objects, VAOs)、纹理矩形、浮点纹理支持、混合颜色分离等,旨在提高性能和灵活性,同时淘汰了一些旧的、效率低下的功能。 高光贴图...