关闭

JavaScript中数组map()方法

1529人阅读 评论(0) 收藏 举报
分类:
JavaScript 数组map()方法创建一个新的数组使用调用此数组中的每个元素上所提供的函数的结果。
语法

1
array.map(callback[, thisObject]);

下面是参数的详细信息:

  •     callback : 从当前的元素函数产生新的数组的元素。
  •     thisObject : 对象作为该执行回调时使用

返回值:

返回创建数组
兼容性:

这种方法是一个JavaScript扩展到ECMA-262标准;因此它可能不存在在标准的其他实现。为了使它工作,你需要添加下面的脚本代码在顶部:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if (!Array.prototype.map)
{
 Array.prototype.map = function(fun /*, thisp*/)
 {
  var len = this.length;
  if (typeof fun != "function")
   throw new TypeError();
 
  var res = new Array(len);
  var thisp = arguments[1];
  for (var i = 0; i < len; i++)
  {
   if (i in this)
    res[i] = fun.call(thisp, this[i], i, this);
  }
 
  return res;
 };
}

例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<html>
<head>
<title>JavaScript Array map Method</title>
</head>
<body>
<script type="text/javascript">
if (!Array.prototype.map)
{
 Array.prototype.map = function(fun /*, thisp*/)
 {
  var len = this.length;
  if (typeof fun != "function")
   throw new TypeError();
 
  var res = new Array(len);
  var thisp = arguments[1];
  for (var i = 0; i < len; i++)
  {
   if (i in this)
    res[i] = fun.call(thisp, this[i], i, this);
  }
 
  return res;
 };
}
 
var numbers = [1, 4, 9];
var roots = numbers.map(Math.sqrt);
 
document.write("roots is : " + roots );
 
</script>
</body>
</html>

这将产生以下结果:

1
roots is : 1,2,3
0
0
查看评论

js中的map()方法

map定义和方法 map()方法返回一个新数组,数组中的元素为原始数组元素调用函数处理的后值。 map()方法按照原始数组元素顺序依次处理元素。 注意: map不会对空数组进行检测 map不会改变原始数组 arr.map(function(currentValue,index,arr),...
  • boysky0015
  • boysky0015
  • 2017-05-29 01:53
  • 9900

js 自带的 map() 方法

1. 方法概述      map() 方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组。 2. 例子    2.1 在字符串中使用map   在一个 St...
  • zgrkaka
  • zgrkaka
  • 2016-12-01 16:03
  • 6129

js 访问Map对象中所有的key和value

在js中访问Map对象中的所有key和value的值 在网上找了下,大部分都说用如下方法,但是我试了试不行 for(key in map) { alert(key +map[key]); } 最终使用如下方法成功实现访问Map对象中的所有key和value的值 var fileName...
  • fan504
  • fan504
  • 2017-05-27 17:30
  • 2965

js中Map之基本用法

 Array.prototype.remove = function(s) { for (var i = 0; i < this.length; i++) { if (s == this[i]) this.splice(i,...
  • niu870781892
  • niu870781892
  • 2010-04-13 09:00
  • 106239

5个数组Array方法: indexOf、filter、forEach、map、reduce使用实例

ECMAScript5标准发布于2009年12月3日,它带来了一些新的,改善现有的Array数组操作的方法。然而,这些新奇的数组方法并没有真正流行起来的,因为当时市场上缺乏支持ES5的浏览器。 Array "Extras" 没有人怀疑这些方法的实用性,但写polyfill(PS:...
  • sinat_17775997
  • sinat_17775997
  • 2017-02-11 19:14
  • 1275

js向数组和map添加元素

数组: unshift:将参数添加到原数组开头,并返回数组的长度  pop:删除原数组最后一项,并返回删除元素的值;如果数组为空则返回undefined  push:将参数添加到原数组末尾,并返回数组的长度  concat:返回一个新数组,是将参数添加到原数组中构成的...
  • huihui870311
  • huihui870311
  • 2016-04-27 15:52
  • 15087

模拟js数组方法map()

在js1.6中新增了的数组方法map(); 这是一个神奇的方法,它是一个方法,但这个方法的具体作用是不一定的,所以还依赖一定的逻辑。例如下面; var arr = [1,1,3,5,5] var add = function(x,y){ return x+y;} var squea...
  • Ted526200
  • Ted526200
  • 2013-01-18 17:25
  • 1048

原生JS forEach()和map()遍历的区别以及兼容写法

一、原生JS forEach()和map()遍历 共同点:      1.都是循环遍历数组中的每一项。   2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项item,当前项的索引index,原始数组input。 3....
  • huangpb123
  • huangpb123
  • 2016-10-08 14:25
  • 9337

js使用map过滤数组中对象

$(function(){ var users=[ {"name":"nihao","age":20}, {"name":"liming","age":21}, {&...
  • u011983028
  • u011983028
  • 2017-07-11 09:05
  • 534

JS数组的map方法

map方法 不支持IE6、7 、8   array1.map(fn)   array1.map(fn[,thisArg])   注意:      fn 必须是函数,如果不是函数则会报错  TypeError: undefined is not a function4...
  • qq_36687674
  • qq_36687674
  • 2017-08-01 11:33
  • 362
    个人资料
    • 访问:1224163次
    • 积分:17743
    • 等级:
    • 排名:第650名
    • 原创:662篇
    • 转载:741篇
    • 译文:1篇
    • 评论:48条
    最新评论