• 两种方法直接删除数组中特定值的项(JavaScript)


    一、问题详情:
    这里写图片描述
    直接删除意为原数组需要被改变,而不是得到另一个数组。
    二、JavaScript实现

    (一)巧用数组的push( )、shift( )方法

    	function del(arr,num) {
    			var l=arr.length;
    		    for (var i = 0; i < l; i++) {
    			  	if (arr[0]!==num) { 
    			  		arr.push(arr[0]);
    			  	}
    			  	arr.shift(arr[0]);
    		    }
    		    return arr;
    		}
    		var a=[3,2,3,445,3,3,3,1,3];
    		console.log(del(a,3));
    

    这种方法非常巧妙,将不与特定值相等的项移到数组最后存起来,再删除当前的第一项。经过 l 次操作之后,只剩下存入数组后方的那些项。

    (二)递归调用方法

    function del(arr,num) {
    			arr.forEach(function (item,index,array) {
    				if (item===num) {
    					arr.splice(index,1);
    				}
    			});
    			if (arr.indexOf(num)!==-1) del(arr,num);
    		}
    		var a=[3,2,3,445,3,3,3,1,3];
    		del(a,3);
    		console.log(a);
    
    function del(arr,num) {
    			for(var p in arr){
    				if (arr[p]===num) {
    					arr.splice(p,1);
    				}
    			}
    			if (arr.indexOf(num)!==-1) del(arr,num);
    		}
    		var a=[3,2,3,445,3,3,3,1,3];
    		del(a,3);
    		console.log(a);
    

    以上两种方法都是采用递归的思想,第一次调用forEach或者for···in之后,并没有清除干净,因此递归调用del函数直到清除干净;

  • 相关阅读:
    css gridlayout
    css position 属性
    简单的登陆界面
    introduce
    Event flow
    constructor和object的区别
    10th week (1)
    编程语言的历史和发展
    正则表达式的验证匹配
    js正则替换
  • 原文地址:https://www.cnblogs.com/twodog/p/12134756.html
Copyright © 2020-2023  润新知