您好,欢迎来到源码搜藏!分享精神,快乐你我!提示:担心找不到本站?在百度搜索“源码搜藏”,网址永远不丢失! 
  • 首 页
  • VIP源码
  • 源码论坛
  • javascript技术你可以轻松的阅读...
    JavaScript与PHP间传送数据
    禁止网页右键查看源码(源文件)
    JavaScript Chart 插件整理
    javascript sudoku 数独智力游戏
    Js动态添加复选框Checkbox的实例
    JavaScript中的私有/静态属性介
    JS版网站风格切换实例代码
    Javascript 函数对象的多重身份
    javascript中删除指定数组中指定
    javascript读取xml
    函数如下: 
    复制代码代码如下:

    foreach = function (obj, insp){ 
    if(obj== null && obj.constructor != Array){ 
    return []; 

    //obj是要处理的数组,obj==null 表示对象尚未存在;obj.constructor != Array 表示对象obj的属性的构造函数不是数组; 
    //constructor属性始终指向创建当前对象的构造函数。两个条件均满足,则返回空数组[]; 
    //下面对constructor属性作进一步了解。 
    var obj= [1, 2, 3, 4]; // 等价于 var obj= new Array(1, 2, 3, 4); 
    console.log(obj.constructor === Array); // 返回true 表明obj的构造函数为Array; 
    var foo= function() { }; // 等价于 var foo = new Function(); 
    console.log(foo.constructor === Function); // 返回true 表明foo的构造函数为Function; 
    var obj = new Foo(); //由构造函数实例化一个obj对象 
    console.log(obj.constructor === Foo); // 返回true 表明obj的构造函数为Foo; 

    ----------------------------------------------------------------------------------------------------------- 
    var i=0, len = obj.length, r = []; 
    while(i<len){ 
    var x = insp(obj[i], i); 
    if (x !== null) { 
    r[r.length] = x; 

    i++; 

    return r; 
    }; 
    //对数组对象obj进行遍历,参数insp代表一个方法或函数,用于对obj中的每个元素进行操作。给参数insp传递了两个参数,obj[i]代表数组中的每一个元素值;并将函数参数insp赋给x,最终将x值赋给数组r。 
    ----------------------------------------------------------------------------------------------------------- 
    比如我们要遍历数组中的每一个元素,引用foreach函数 
    var testArray = [1,2,3,4,5,1,2,'w']; 
    foreach(testArray, function(i){ 
    alert(i) 
    }); 
    ----------------------------------------------------------------------------------------------------------- 
    ----------------------------------------------------------------------------------------------------------- 
    我们用另一个函数来删除指定数组中指定的元素; 
    复制代码代码如下:

    ArrayWithout = function(){ 
    if (arguments.length < 2) { 
    // Arguments 是特殊的对象,代表函数的参数. 
    return arguments.length == 1 ? arguments[0] : null; 

    var results = []; 
    var aa = arguments[0]; 
    //将第一参数赋给数组aa; 
    if (aa === null || aa.constructor != Array) { 
    return null; 
    //如果aa不存在或者不是数组,那么返回null; 

    if(arguments[1].constructor == Array){ 
    // 如果第二个参数是数组,则将参数数组中对应的每个元素都删除; 
    var args = []; 
    args[0] = aa; 
    //aa = arguments[0] 将aa赋给数组args,作为其第一个元素值; 
    foreach(arguments[1], function(v, i){ 
    //引用了函数foreach,来对数组arguments[1]中每个元素进行操作, 
    args[i+1] = v; 
    // v代表数组arguments[1]中每个元素值,将它们一一赋值给args[1],args[2]...,而args[0]=arguments[0]; 
    }); 

    else{ 
    args = arguments; 
    //如果第二个参数不是数组,则直接将参数数组赋给args; 

    for(var i = 0;i < aa.length; i ++){ 
    var isWithout = true; 
    for(var j = 1; j < args.length ; j ++){ 
    if(aa[i] == args[j]){ 
    isWithout = false; 
    break; 
    // 切记j是从1开始的,因为args的第一元素args[0]是arguments[0],正是我们要处理的的原数组,等同于数组aa; 
    让要删除的各个元素与原数组aa中的某一元素进行逐次比较,如果相同,break 跳出循环; isWithout返回false,所以也不再执行下面的 results.push(aa[i]); 


    if (isWithout) { 
    results.push(aa[i]); 
    //所谓删除原理,就是将原数组各元素与要删除的元素进行比较,保留与要删除的元素不相同的元素并赋给一个新的数组results; 


    return results; 
    //返回已经删除了指定元素的数组; 
    }; 
    // 引用ArrayWithout的例子 
    var testArray = [1,2,3,4,5,1,2,'w']; 
    var result = ArrayWithout(testArray, 1, 3); 
    //var result = ArrayWithout(testArray, [1, 4]); 
    alert(result) //[2,4,5,2] 

    源代码如下: 
    复制代码代码如下:

    foreach = function (obj, insp){ 
    if(obj == null && obj.constructor != Array){ 
    return []; 

    var i=0, len = obj.length, r = []; 
    while(i<len){ 
    var x = insp(obj[i], i); 
    if (x !== null) { 
    r[r.length] = x; 

    i++; 

    return r; 
    }; 
    ArrayWithout = function(){ 
    if (arguments.length < 2) { 
    return arguments.length == 1 ? arguments[0] : null; 

    var results = []; 
    var aa = arguments[0]; 
    if (aa === null || aa.constructor != Array) { 
    return null; 

    if(arguments[1].constructor == Array){ 
    var args = []; 
    args[0] = aa; 
    foreach(arguments[1], function(v, i){ 
    args[i+1] = v; 
    }); 

    else{ 
    args = arguments; 

    for(var i = 0;i < aa.length; i ++){ 
    var isWithout = true; 
    for(var j = 1; j < args.length ; j ++){ 
    if(aa[i] == args[j]){ 
    isWithout = false; 
    break; 


    if (isWithout) { 
    results.push(aa[i]); 


    return results; 
    }; 
    var testArray = [1,2,3,4,5,1,2]; 
    foreach(testArray, function(i){ 
    alert(i) 
    }) 
    var result = ArrayWithout(testArray, 1, 3); 
    //var result = ArrayWithout(testArray, [1, 3]); 
    alert(result) //[2,4,5,2]