源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

javascript中删除指定数组中指定的元素的代码

  • 时间:2021-07-23 14:08 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:javascript中删除指定数组中指定的元素的代码
函数如下:
[u]复制代码[/u] 代码如下:
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) }); ----------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------- 我们用另一个函数来删除指定数组中指定的元素;
[u]复制代码[/u] 代码如下:
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]
源代码如下:
[u]复制代码[/u] 代码如下:
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]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部