js 自带的 map() 方法

js 自带的 map() 方法

1. 方法概述

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

2. 例子

2.1 在字符串中使用map

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

var map = Array.prototype.map
var a = map.call("Hello World", function(x) { return x.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]
*/

时间: 2024-08-06 08:48:47

js 自带的 map() 方法的相关文章

JS自带的map()方法

1. map()方法返回一个由原数组的每个元素调用一个指定方法后返回值组成的新数组. 2. 例子: 2.1 在字符串中使用map 在一个String上使用map方法获取字符串中每个字符所对应的ASCII码组成的数组: var map = Array.prototype.map var a = map.call("Hello World",function(x){ return x.charCodeAt(0); })// a的值为[72, 101, 108, 108, 111, 32,

js自带的map方法

let numbers = [1, 5, 10, 15]; let roots = numbers.map(function(x) { return x * 2; }); map() 方法创建一个新数组,其结果是该数组中的每个元素调用一个提供的函数. 试用小技巧 求数组中每个元素的平方根 var numbers = [1, 4, 9]; var roots = numbers.map(Math.sqrt); 参考https://developer.mozilla.org/zh-CN/docs/W

js中数组的map()方法

map()方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值 map()方法按照原是数组顺序以此处理元素 注意:map()不会对空数组进行检测 :不会改变原始的数组 实例: var numbers = [65, 44, 12, 4]; function multiplyArrayElement(num) { return num * 10; } function myFunction() { document.getElementById("demo").innerHTM

JS的forEach和map方法的区别,还有一个$.each

forEach()和map()两个方法都是ECMA5中Array引进的新方法,主要作用是对数组的每个元素执行一次提供的函数,但是它们之间还是有区别的.jQuery也有一个方法$.each(),长得和forEach()有点像,功能也类似.但是从本质上还是有很大的区别的,那么我们探探究竟. 一.forEach和map语法 语法: //forEach array.forEach(callback(currentValue, index, array){ //do something }, this)

js 自带的 sort() 方法

1. 方法概述 Array的sort()方法默认把所有元素先转换为String再根据Unicode排序, sort()会改变原数组,并返回改变(排序)后的数组 . 2. 例子 2.1 如果没有提供自定义的方法, 数组元素会被转换成字符串,并返回字符串在Unicode编码下的顺序比较结果 var fruit = ['cherries', 'apples', 'bananas']; fruit.sort(); // ['apples', 'bananas', 'cherries'] var scor

Asp.Net实现JS前台带箭头的流程图方法总结!(个人笔记,信息不全)

Asp.Net实现JS前台带箭头的流程图方法总结!(持续更新中) 一.返回前台json格式 json5 = "[{\"Id\":2259,\"Name\":\"高中\"},{\"Id\":2259,\"tName\":\"初中\"},{"Id":2259,"Name":"小学"}]"; Asp.Net实现JS

兼容低版本JS的Array.map方法

前几天去别的公司面试遇到个这样的问题,兼容IE7下的Array.map方法,一脸蒙蔽.后面回来查了下资料发现.Array.map方法是ECMA-262 标准中新添加的方法,在低版本的JS中是木有的. 看如下兼容性实现方式: 实现思路:1,先验证this对象,再将this用Object封装成obj. 2,获取封装后的obj的属性长度 3,验证是否有回调方法 4,根据obj的属性长度lengh生成新的数组,new Array(length). 5,遍历obj对象,获取mapKey,mapValue,

JS中find(), findIndex(), filter(), forEach(), some(), every(), map()方法

1. find()与findIndex() find()方法,用于找出第一个符合条件的数组成员.它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员.如果没有符合条件的成员,则返回undefined. [1, 2, 5, -1, 9].find((n) => n < 0)    //找出数组中第一个小于 0 的成员    // -1 find()方法的回调函数可以接受三个参数,依次为当前的值.当前的位置和原数组. findIndex()方

js map方法的使用

原型: array.map(callback,[ thisObject]);  callback的参数类似: [].map(function(value, index, array) { // ... }); 三个参数为:当前正在遍历的元素, 元素索引, 原数组本身. 示例: ["1", "2", "3"].map(returnInt);// 返回[1,2,3] function returnInt(element){ return parseI