jquery.map
jQuery.map 方法概述
jQuery.map() 是一个用于遍历数组或对象并返回新数组的实用方法。它允许对每个元素应用转换函数,并将结果收集到一个新数组中。
语法
jQuery.map(array, callback(elementOfArray, indexInArray))
- array: 要遍历的数组或类数组对象。
- callback: 处理每个元素的函数,返回的值会被添加到新数组中。
使用示例
遍历数组并修改元素
var numbers = [1, 2, 3, 4];
var squaredNumbers = jQuery.map(numbers, function(num) {
return num * num;
});
// 结果: [1, 4, 9, 16]
过滤数组元素
通过返回 null 或 undefined,可以过滤掉不需要的元素:
var numbers = [1, 2, 3, 4];
var evenNumbers = jQuery.map(numbers, function(num) {
return num % 2 === 0 ? num : null;
});
// 结果: [2, 4]
遍历对象
jQuery.map() 也可以用于对象,但返回的始终是数组:
var obj = {a: 1, b: 2, c: 3};
var values = jQuery.map(obj, function(value, key) {
return value * 2;
});
// 结果: [2, 4, 6]
与原生 Array.map() 的区别
- 过滤能力: jQuery.map() 可以通过返回
null或undefined过滤元素,而原生Array.map()总是返回与原数组相同长度的数组。 - 对象支持: jQuery.map() 可以遍历对象,而原生
Array.map()仅适用于数组。 - 参数顺序: jQuery.map() 的回调参数顺序是
(element, index),而原生Array.map()是(element, index, array)。
性能考虑
对于大型数组,原生 Array.map() 通常比 jQuery.map() 更快,因为它是 JavaScript 引擎内置的方法。如果不需要 jQuery 的特殊功能(如过滤或对象支持),建议使用原生方法。

浏览器兼容性
jQuery.map() 在所有支持 jQuery 的浏览器中工作,包括较旧的 IE 版本。原生 Array.map() 需要 IE9+ 或其他现代浏览器。






