定义map数组,js数组的map方法和foreach区别
本教程运行环境:windows7系统,javascript1.8.5版本1.8.5,戴尔G3电脑。
map()方法可以为数组的每个元素调用指定的回调函数,并返回包含结果的数组。
map()方法按照原始数组元素的顺序处理元素。
语法
array . map(function (currentvalue,index,arr),thisvalue)参数描述function(current value,index,arr)必须为。函数,数组中的每个元素都会执行这个函数。
功能参数:
当前值必须为。当前元素的值
索引可选。当前元素的索引值
Arr是可选的。当前元素所属的数组对象。
该值是可选的。该对象用作回调,传递给函数,并用作“this”的值。
如果thisValue被省略,或者传入了null或undefined,那么这个回调函数就是一个全局对象。map()方法将返回一个新数组,其中每个元素都是关联的原始数组元素的回调函数返回值。对于数组中的每个元素,map()方法调用callbackfn函数一次(按索引升序),不调用数组中缺失元素的回调函数。
除了array对象之外,map()方法还可以由任何具有length属性和索引属性名称的对象使用,例如Arguments参数对象。
map()方法不直接修改原始数组,但回调函数可能会修改它。启动map方法后修改数组对象得到的结果如表所示。
回调函数修改数组的效果是否将map方法启动后的条件元素传递给回调函数添加一个超出数组原始长度的元素否添加一个元素以填充数组中缺失的元素是,如果索引没有传递给回调函数,则该元素已被更改是,如果该元素没有传递给回调函数,则从数组中删除该元素否,除非该元素已传递给回调函数示例1。
下面的示例使用map()方法映射一个数组,将数组中每个元素的值平方,乘以PI的值,将返回的圆的面积值作为新数组的元素值,最后返回这个新数组。
函数f(半径){
var面积=数学。PI *(半径*半径);
返回area . to fixed(0);
}
var a=[10,20,30];
var a1=a . map(f);
console . log(a1);
示例2
下面的示例使用map()方法映射一个数组,将数组中每个元素的值除以一个阈值,然后返回这个新数组,其中回调函数和阈值都作为对象的属性存在。此方法演示了如何在地图中使用thisArg参数。
var obj={
瓦尔:10,
f:函数(值){
返回值% this.val
}
}
var a=[6,12,25,30];
var a1=a.map(obj.f,obj);
console . log(a1);//6,2,5,0
示例3
下面的例子演示了如何使用JavaScript内置方法作为回调函数。
var a=[9,16];
var a1=a . map(math . sqrt);
console . log(a1);//3,4
示例4
下面的示例演示如何将map方法应用于一组类。在示例中,如果map通过动态调用方法(Call)作用于字符串,map将遍历字符串中的每个字符,并调用回调函数threeChars来截取每个字符周围的三个字符,并将它们映射到一个新数组。
函数f(值,索引,字符串){
返回str.substring(index - 1,index 2);
}
var s=星期四;
var a=[].map.call(s,f);
console . log(a);//日,周四,hur,urs,rsd,sda,日,ay
【相关推荐:javascript学习教程】以上是ecmascript 5中数组的map()方法使用的详细内容。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。