美文网首页
js自带map方法 易犯错误

js自带map方法 易犯错误

作者: 破罐子苏 | 来源:发表于2018-03-20 09:56 被阅读0次

1. 方法概述

 map() 方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组。

2. 例子

   2.1 在字符串中使用map

在一个 String上使用 map 方法获取字符串中每个字符所对应的 ASCII 码组成的数组:

varmap = Array.prototype.mapvara = map.call("Hello World",function(x) {returnx.charCodeAt(0); })// a的值为[72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100]

   2.2 易犯错误

通常情况下,map 方法中的 callback 函数只需要接受一个参数(很多时候,自定义的函数形参只有一个),就是正在被遍历的数组元素本身。

但这并不意味着 map 只给 callback 传了一个参数(会传递3个参数)。这个思维惯性可能会让我们犯一个很容易犯的错误。

// 下面的语句返回什么呢:["1", "2", "3"].map(parseInt);

// 你可能觉的会是[1, 2, 3]

// 但实际的结果是 [1, NaN, NaN]

// 通常使用parseInt时,只需要传递一个参数.但实际上,parseInt可以有两个参数.第二个参数是进制数.可以通过语句"alert(parseInt.length)===2"来验证.

// map方法在调用callback函数时,会给它传递三个参数:当前正在遍历的元素, 元素索引, 原数组本身

.// 第三个参数parseInt会忽视, 但第二个参数不会,也就是说,parseInt把传过来的索引值当成进制数来使用.从而返回了NaN.

/*//应该使用如下的用户函数returnInt

function returnInt(element){

  return parseInt(element,10);

}

["1", "2", "3"].map(returnInt);

// 返回[1,2,3]*/

相关文章

  • js自带map方法 易犯错误

    1. 方法概述 map()方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组。 2. 例子 ...

  • js中的循环遍历方法对比

    JS循环大总结, for, forEach,for in,for of, map区别 map(数组方法): 特性:...

  • 2018-08-23

    js数组map的用法指“映射”。[].map(); 基本用法跟forEach方法类似:[].map(functio...

  • map

    js中的map()方法 map定义和方法 map()方法返回一个新数组,数组中的元素为原始数组元素调用函数处理的后...

  • js map方法

    var users = [ {name: "张含韵", "email": "zhang@email.com"}, ...

  • 数组(Array)<迭代器>

    一、Js数组迭代器方法 主要介绍js数组中的forEach,every,some,filter,map迭代器方法 ...

  • js语法中的一些集合数组的操作(同步和异步)

    js的.map() 里使用异步方法:.map()里的处理方法是同步的,若想做异步操作,可以这样写: 或是: 工作中...

  • JavaScript和Object-OC互相调用

    一 调用的方法:## 1. OC调用js方法,只需要调用UIWebView自带的方法即可. 2.js调用OC方法,...

  • js 数组 map方法

    [].map(); 基本用法跟forEach方法类似: array.map(callback,[ thisObje...

  • js中map方法

    在工作中遇到了难题,根据唯一的id来添加并获取里面的属性,我以为是要写循环(绕蒙圈),后来同事说用map方法就能解...

网友评论

      本文标题:js自带map方法 易犯错误

      本文链接:https://www.haomeiwen.com/subject/iwdvqftx.html