一、功能不同
1、map:用于使用指定函数处理数组中的每个元素(或对象的每个属性),并将处理结果封装为新的数组返回。
2、each:为每个匹配元素规定要运行的函数。
二、传递参数不同
1、map:会为函数传入两个参数:其一是当前迭代的元素或属性值,其二是当前迭代项的数组索引或对象属性名。
2、each: 会为函数传入两个参数:其一是选择器的 index 位置。其二是当前的元素。
三、返回值不同
1、map:返回值将作为结果数组中的一个元素,如果返回值为null或undefined,则不会被添加到结果数组中。
2、each:返回 false 可用于及早停止循环。
参考资料来源:百度百科-each
参考资料来源:百度百科-Map
$.map()方法适用于将数组或对象每个项目新阵列映射到一个新数组的函数
作为返回值是一个jQuery包装的数组,这是非常常见get()返回的对象与基本数组。.map()方法尤其有用于元素获取或设置一个集合的值。考虑一个复选框集合的表单:
each方法就相当于js中的for循环,返回 'false' 将停止循环 (就像在普通的循环中使用 'break')。map将一组元素转换成其他数组(不论是否是元素数组),你可以用这个函数来通过新规则(如过滤掉数字)来建立一个新列表,不论是值、属性还是CSS样式,或者其他特别形式。这都可以用'$.map()'来方便的建立。
在each方法是要成为一个不可改变的迭代器,map的方法可以作为一个迭代器,但实际是为了操纵提供的数组并返回一个新数组。 另一个重要的一点要注意的是, each函数返回原来的阵列,而map函数返回一个新的数组。.如果你过度使用map的函数的返回值可以潜在地浪费了大量的内存。 还可以使用map功能从数组中删除一个项目map()调用的函数的每个元素,并存储返回的结果在一个新的数组。 你通常只需要使用回调函数的第一个参数。