map()
方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组。
这里的map
不是“地图”的意思,而是指“映射”。[].map();
基本用法跟forEach
方法类似:
function square(i){ return i*i; }
console.og(["1","2","3"].map(square)); //输出 ["1","4","9"]
map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
array.map(function(currentValue,index,arr), thisValue)
map() 方法按照原始数组元素顺序依次处理元素。
注意: map() 不会对空数组进行检测。
注意: map() 不会改变原始数组。
在实际使用的时候,我们可以利用map
方法方便获得对象数组中的特定属性值们。例如下面这个例子(之后的兼容demo也是该例子):
var users = [ {name: "张含韵", "email": "[email protected]"}, {name: "江一燕", "email": "[email protected]"}, {name: "李小璐", "email": "[email protected]"} ]; var emails = users.map(function (user) { return user.email; }); console.log(emails.join(", ")); // [email protected], [email protected], [email protected]
Array.prototype
扩展可以让IE6-IE8浏览器也支持map
方法:
if (typeof Array.prototype.map != "function") { Array.prototype.map = function (fn, context) { var arr = []; if (typeof fn === "function") { for (var k = 0, length = this.length; k < length; k++) { arr.push(fn.call(context, this[k], k, this)); } } return arr; }; }
时间: 2024-10-13 10:07:43