JavaScript 映射数组
■知识点
使用map()方法可以对数组的每个元素调用指定的回调函数,并返回包含结果的数组。参数为一个回调函数。
■实例设计
【示例1】下面的示例使用map方法映射数组,把数组中每个元素的值平方,乘以PI值,把返回的圆的面积值作为新数组的元素值,最后返回这个新数组。
function f(radius) {
var area = Math.PI * (radius * radius);
return area.toFixed (0);
}
var a = [10, 20, 30];
var al = a.map (f);
console.log(al); //314,1257,2827
【示例2】下面的示例使用map方法映射数组,把数组中的每个元素的值除以一个阈值,然后返回这个新数组。其中回调函数和阈值都以对象的属性存在,通过这种方法演示如何在map中使用thisArg 参数。
var obj = {
val: 10,
f: function (value) {
return value % this.val;
}
}
var a = [6, 12, 25, 30];
var al = a.map(obj.f, obj);
console.log (al); //6, 2,5, 0
【示例3】下面的示例演示如何使用JavaScript内置方法作为回调函数。
var a = [9, 16];
var al = a.map(Math.sqrt);
console.log(al) ; //3,4
【示例4】下面的示例演示如何使用map方法应用于一个类数组。在示例中通过动态调用的方法(call)把map作用于一个字符串上,则map将遍历字符串中每个字符,并调用回调函数threeChars,把每个字符左右3个字符截取出来,映射到一个新数组中。
function f(value, index, str) {
return str.substring(index - 1, index + 2);
}
var s = "Thursday1’;
var a = [ ].map.call(s, f);
console.log(a);
//Th,Thu,hur,urs,rsd,sda,day, ay
点击加载更多评论>>