js中巧用indexOf,消灭for与if

[size=x-large]首先来一段代码:[/size]
[size=medium]Activity.judge_already_exist = function( activity_name,name_list){
for(var i=0;i<name_list.length ;i++){
if(activity_name == name_list[i]) {
return i;
}
}
return -1;
};[/size]
[size=large]大家仔细的读一下就可以发现这段代码的作用就是判断数组中是否存在某个元素,如果存在则返回此元素的下标,即元素在数组中的位置如果次元素不存在,则返回-1.
读到这里大家可能就会说,这不就是indexOf函数的代码实现吗,没什么特殊的地方啊。客官请稍后,听我细细道来。
如果我换一种提问方式,请判断一个存有若干名字的数组中是否有你的名字?那么你首先想到的方法是什么呢?是遍历一边数组,找找看有没有你的名字?是不是再像上面那样用for和if来一段代码?
实际上一句就可以,客官请看:
[color=red]return namelist.indexOf("某帅哥")!=-1;[/color]
若返回值为真,那说明存在。但是注意一点,indexOf本身是字符串的索引函数,所以其输入至也必须是字符串。
实际上,indexOf的使用,是有许多局限性的,他只能索引元素简单的数组,如果数组中的元素是个对象的话,则不能通过它来索引了。[/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值