jquery map
jQuery .map() 方法
jQuery 的 .map() 方法用于遍历一个 jQuery 对象中的元素或数组,并对每个元素执行回调函数,返回一个新的 jQuery 对象或数组。与 .each() 不同,.map() 会返回处理后的结果集合。
语法
$(selector).map(callback(index, element))
callback: 必需,为每个元素执行的函数。index: 当前元素的索引。element: 当前 DOM 元素(也可以用this访问)。
返回值
返回一个新的 jQuery 对象或数组,包含回调函数处理后的结果。
示例 1:映射数组值
将数组中的每个元素乘以 2:
const numbers = [1, 2, 3, 4];
const doubled = $.map(numbers, function(num) {
return num * 2;
});
console.log(doubled); // [2, 4, 6, 8]
示例 2:映射 DOM 元素属性
获取所有 <div> 元素的 ID 并组成新数组:
const divIds = $("div").map(function() {
return this.id;
}).get(); // .get() 将 jQuery 对象转为普通数组
console.log(divIds);
示例 3:过滤无效值
通过返回 null 或 undefined 过滤不需要的项:
const filtered = $.map([0, 1, 2, null, 5], function(val) {
return val !== null ? val * 2 : null;
});
console.log(filtered); // [0, 2, 4, 10]
与 .each() 的区别
.each()直接操作元素,无返回值。.map()返回处理后的新集合,适合链式操作。
.each() 示例
$("div").each(function() {
console.log(this.id); // 仅遍历,不返回结果
});
注意事项
- 链式调用:
.map()返回的是 jQuery 对象,需用.get()转为普通数组。 - 性能:对大型数据集使用原生
Array.map()可能更高效。 - 兼容性:jQuery 1.2+ 支持此方法。
如果需要进一步优化或处理复杂数据,建议结合原生 JavaScript 方法使用。







