当前位置:  开发笔记 > 编程语言 > 正文

jQuery.map - 函数的实际用途?

如何解决《jQuery.map-函数的实际用途?》经验,为你挑选了3个好方法。

我试图更好地理解jQuery.map函数.

因此,一般而言.map采用数组并将其"映射"到另一个项目数组.

简单的例子:

$.map([0,1,2], function(n){
    return n+4;
});

结果在[4,5,6]

我想我明白它的作用.我想知道为什么有人需要它.这个功能的实际用途是什么?你是如何在你的代码中使用它的?



1> Ron DeVera..:

映射有两个主要目的:从项目数组中获取属性,以及将每个项目转换为其他项目.

假设您有一个表示用户的对象数组:

var users = [
  { id: 1, name: "RedWolves" },
  { id: 2, name: "Ron DeVera" },
  { id: 3, name: "Jon Skeet" }
];

映射是从每个项目中获取特定属性的便捷方式.例如,您可以将其转换为用户ID数组:

var userIds = $.map(users, function(u) { return u.id; });

再举一个例子,假设您有一组元素:

var ths = $('table tr th');

如果要存储这些表头的内容供以后使用,可以获取其HTML内容的数组:

var contents = $.map(ths, function(th) { return th.html(); });



2> JPot..:

$.map 是关于转换集合中的项目.

就DOM而言,我经常使用它来快速从我的元素中提取值:

var usernames = $('#user-list li label').map(function() {
    return this.innerHTML;
})

以上将用户列表中的元素转换为其中包含的文本.然后我可以这样做:

alert('The following users are still logged in: ' + usernames.join(', '));


[$ .map](http://api.jquery.com/jquery.map/)和[.map()](https://api.jquery.com/map/)是不同的功能.你指的是`$ .map`,提供的例子是`.map()`
示例中提供的代码将无法正常工作,因为您首先需要使用.get()将映射列表转换为本机数组.以下是更正后的代码:var usernames = $('#user-list li label').map(function(){return this.innerHTML;}).get();

3> CMS..:

Map是一个高阶函数,它使您能够将某个函数应用于给定序列,生成一个新的结果序列,其中包含每个原始元素的值以及所应用函数的值.

我经常用它来获取我所有jQuery UI面板的有效选择器,例如:

var myPanels = $('a').map(function() { 
  return this.hash || null; 
}).get().join(',');

这将返回当前页面中可用面板的逗号分隔字符串,如下所示:

"#home,#publish,#request,#contact"

这是一个可以使用的有效选择器:

$(myPanels);// do something with all the panels

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有