zoukankan      html  css  js  c++  java
  • 两种方法直接删除数组中特定值的项(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函数直到清除干净;

  • 相关阅读:
    text/css什麼意思
    w3cschool的在線編輯器的特點
    html
    notepad编写html
    html学习心得
    html 链接
    資料鏈接
    微信小程序的界面下拉刷新
    C# PictureBox控件畫圖
    CPK公式
  • 原文地址:https://www.cnblogs.com/twodog/p/12134756.html
Copyright © 2011-2022 走看看