javascript数组contain方法的实现

     我在进行javascript编程时,因为需要判断数组对象是否包含某个元素,所以想到修改Array.prototype,添加contain方法,以模仿java中collection接口实现包含判断。因此我做了如下的工作:

Array.prototype.contain = function(item){
    var flag =false;
    for(index in this){
        flag = (item==this[index])?true:false;
        if(flag)break;
    }
    return flag;
}

var specified = ["Music","Shows","Movies"];
var a = "Music";
if(specified.contain(a)){
    alert("in");                                //run this line
}else{
    alert("not");
}
alert(specified.length);                //3

for(var i = 0 ;i<specified.length;i++){
    alert(specified[i]);                  //3 times
}

for(index in specified){
    alert(specified[index]);           //4 times,the last is the function 'contain'
}

但是这种方式对于要经常使用for( index in array)这种形式遍历数组反而是不利的(主要是担心同一个页面由不同的人在工作)。所以替代的方法就是:

function ArrayContain(array,item){
    var flag =false;
    for(index in array){
        flag = (item==array[index])?true:false;
        if(flag)break;
    }
    return flag;
}

使用一个额外的辅助函数,将数组和要判断的对象作为参数传递,尽管这不是我最初的想法。


json的遍历(key in json)

var specified = {x:"Music",
                 y:"Shows",
                 z:"Movies"};
for(key in specified){
    alert("key is :" + key + " value is :" +specified[key]);

  //alert("key is :" + key + " value is :" +eval("specified."+key));also ok.

}

Array的遍历(index in array)

var specified = ["Music","Shows","Movies"];

for(index in specified){
    var num = parseInt(index)+1;
    alert("The no."+num+" is " + specified[index]);    
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值