问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

jquery数组封装使用方法分享(jquery数组遍历)

发布网友 发布时间:2022-04-28 17:08

我来回答

1个回答

热心网友 时间:2022-04-22 11:57

$.each(array,
[callback])
遍历
不同于例遍
jQuery
对象的
$.each()
方法,此方法可用于例遍任何对象(不仅仅是数组哦~).
回调函数拥有两个参数:第一个为对象的成员或数组的索引,
第二个为对应变量或内容.
如果需要退出
each
循环可使回调函数返回
false,
其它返回值将被忽略.
each遍历,相信都不陌生,在平常的事件处理中,是for循环的变体,但比for循环强大.在数组中,它可以轻松的攻取数组索引及对应的值.例:
使用方法如下:
复制代码
代码如下:
var
arr
=
['javascript',
'php',
'java',
'c++',
'c#',
'perl',
'vb',
'html',
'css',
'objective-c'];
$.each(arr,
function(key,
val)
{
//
firebug
console
console.log('index
in
arr:'
+
key
+
",
corresponding
value:"
+
val);
//
如果想退出循环
//
return
false;
});
再来个测试程序:
[/code]
var
fruit
=
['苹果','香蕉','橙子','哈密瓜','芒果'];
//用原生getElementsByTagName获取h2元素的对象集合
var
h2obj=document.getElementsByTagName('h2');
//$.each()遍历数组
$('input#js_each').click(function(){
$.each(fruit,function(key,val){
//回调函数有两个参数,第一个是元素索引,第二个为当前值
alert('fruit数组中,索引:'+key+'对应的值为:'+val);
});
});
[/code]
相对于原生的for..in,each更强壮一点.
for..in也可以遍历数组,并返回对应索引,但值是需要通过arrName[key]来获取;
$.grep(array,
callback,
[invert])过滤
使用过滤函数过滤数组元素.此函数至少传递两个参数(第三个参数为true或false,对过滤函数返回值取反,个人觉得用处不大):
待过滤数组和过滤函数.
过滤函数必须返回
true
以保留元素或
false
以删除元素.
另外,过滤函数还可以是可设置为一个字条串(个人不推荐,欲了解自行查阅);
复制代码
代码如下:
v[code]ar
temp
=
[];
temp
=
$.grep(arr,
function(val,
key)
{
if(val.indexOf('c')
!=
-1)
return
true;
//
如果[invert]参数不给或为false,
$.grep只收集回调函数返回true的数组元素
//
反之[invert]参数为true,
$.grep收集回调函数返回false的数组元素
},
false);
console.dir(temp);
再来个测试程序:
复制代码
代码如下:
//$.grep()过滤数组
$('input#js_grep').click(function(){
$.grep(fruit,function(val,key){
//过滤函数有两个参数,第一个为当前元素,第二个为元素索引
if(val=='芒果'){
alert('数组值为
芒果
的下标是:
'+key);
}
});
var
_moziGt1=$.grep(fruit,function(val,key){
return
key>1;
});
alert('fruit数组中索引值大于1的元素为:
'+_moziGt1);
var
_moziLt1=$.grep(fruit,function(val,key){
return
key>1;
},true);
//此处传入了第三个可靠参数,对过滤函数中的返回值取反
alert('fruit数组中索引值小于等于1的元素为:
'+_moziLt1);
});
$.map(array,[callback])按给定条件转换数组
作为参数的转换函数会为每个数组元素调用,
而且会给这个转换函数传递一个表示被转换的元素作为参数.
转换函数可以返回转换后的值、null(删除数组中的项目)或一个包含值的数组,
并扩展至原始数组中.这个是个很强大的方法,但并不常用.
它可以根据特定条件,更新数组元素值,或根据原值扩展一个新的副本元素.
复制代码
代码如下:
//1.6之前的版本只支持数组
temp
=
$.map(arr,
function(val,
key)
{
//返回null,返回的数组长度减1
if(val
===
'vb')
return
null;
return
val;
});
console.dir(temp);
//1.6开始支持json格式的object
var
obj
=
{key1:
'val1',
key2:
'val2',
key3:
'val3'};
temp
=
$.map(obj,
function(val,
key)
{
return
val;
});
console.dir(temp);
再来个测试程序:
复制代码
代码如下:
//$.map()按给定条件转换数组
$('input#js_map').click(function(){
var
_mapArrA=$.map(fruit,function(val){
return
val+'[新加]';
});
var
_mapArrB=$.map(fruit,function(val){
return
val=='苹果'
?
'[只给苹果加]'+val
:
val;
});
var
_mapArrC=$.map(fruit,function(val){
//为数组元素扩展一个新元素
return
[val,(val+'[扩展]')];
});
alert('在每个元素后面加\'[新加]\'字符后的数组为:
'+
_mapArrA);
alert('只给元素
苹果
添加字符后的数组为:
'+
_mapArrB);
alert('为原数组中每个元素,扩展一个添加字符\'[新加]\'的元素,返回的数组为
'+_mapArrC);
});
$.inArray(val,array)判断值是否存在于数组中
确定第一个参数在数组中的位置,
从0开始计数(如果没有找到则返回
-1
).记得indexOf()方法了吗?
indexOf()返回字符串的首次出现位置,而$.inArray()返回的是传入参数在数组中的位置,同样的,如果找到的,返回的是一个大于或等于0的值,若未找到则返回-1.现在,
知道怎么用了吧.
有了它,
判断某个值是否存在于数组中,就变得轻而易举了.
复制代码
代码如下:
//返回元素在数组中的位置,0为起始位置,返回-1则未找到该元素
console.log($.inArray('javascript',
arr));
测试程序:
[code]
//$.inArray判断值是否在数组中,不存在返回-1,存在则返回对应索引值
$('input#js_inarray').click(function(){
var
_exist=$.inArray('芒果',fruit);
var
_inexistence=$.inArray('榴莲',fruit)
if(_exist>=0){
alert('芒果
存在于数组fruit中,其在数组中索引值是:
'+_exist);
}
if(_inexistence<
0){
alert('榴莲
不存在于数组fruit中!,返回值为:
'+_inexistence+'!');
}
});
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? 黑龙江债权转让合同纠纷该怎样取证 安徽债权转让合同纠纷应该怎么样取证 房产官司律师费多少 jquery操作类数组的方法get()和toArray()有什么区别? 请问有什么容易的方法可以很快记住简谱7个音的读法和音调,就是1234567,音调也要记住 jquery 操作数组 jquery如何定义和操作数组和数组元素 什么叫音阶? do、re、mi、fa、so l、la、si这七个音阶是这么发音的 还有其他五个是怎么发音的有谁能告诉下!! 什么是音阶? 7个基本音调是什么 音阶是什么 苹果手机6为什么老是显示无服务? iphone手机的信号不好一直显示无服务是怎么回事? 音阶1234567对应的音名是什么? 请问七个基本音分别是什么? 苹果电脑启动黑屏怎么办? 求助,苹果笔记本电脑开机就黑屏只有圆圈转,三天了 请教各位大神为什么苹果电脑一开机就黑屏 苹果电脑开机一直黑屏,怎么办 苹果笔记本电脑开机后黑屏是怎么回事怎么解决 macbook air开机后黑屏只有一个小白圈一直转动,然后就没别的反应了,一直启动不了,怎么解决_百度问一问 淘宝批量退款怎么弄 jquery如何解析数组(JSONArray)? 什么是jquery对象数组 jquery怎么定义数组,再把值一个个添加到数组中,取出其中值? 如何利用jQuery获取数组中最大值和最小值? Jquery怎么样多维数组进行增删改查 jQuery怎样遍历如下数组格式 jquery如何拆分数组? jquery如何处理的问题 三星手机屏幕异常,只在最低亮度和最高亮度显示,要是换成其他亮度就会黑屏? 如果利息的计算公式是:利息=本金×利率×存期,那么本金、利率、存期的计算公式分别又是什么呢? 本金、利率、期数、利息这四个量的关系是___。 大专工商企业管理标准化 毕业论文怎么写啊 本金,利息和利率三者之间的关系用关系式表示怎样 求自考工商企业管理论文题目,小弟不太懂,求高手写一篇 我自考企业管理的,谁知道论文该怎么写?求帮助 本金,利息,本息和,期数,利率,月利率,年利率,利息税,的概念是什麽 求一篇电大,万分感谢*自考 工商管理专科的毕业论文(5000字)左右,上班实在弄不来这个,万分感谢! 自考工商企业管理专科需要写毕业论文吗? 储蓄中的利息,本金,利率,本利和,它们之间的数量关系是 利息=——*——*—— 本利和=——+—— 求 工商企业管理毕业论文怎么写,老师说我们些什么题目都行。就是管理类的。怎么下手写呀,愁!!