zoukankan      html  css  js  c++  java
  • 2018.2.27 JavaScript数组方法应用

    JavaScript数组方法应用

    1.找出元素item在给定数组arr中的位置

    function indexOf(arr,item){
    	return arr.indexOf(item);
    }
    
    function indexOf(arr,item){
    	var index = -1;
    	arr.forEach(function(res,i)){
    		if(res === item && index === -1){
    			index = i;
    		}
    	});
    return index;
    }
    
    function indexOf(arr,item){
    	if(Array.prototype.indexOf){
    	return arr.indexOf(item);
    	}else{
    		for(var i = 0; i<arr.length;i++){
    			if(arr[i] === item){
    				return i;
    			}
    		}
    	}
    	return -1;
    }
    
    function indexOf(arr,item){
    	var len = arr.length;
    	for(var i = 0;i < len;i++){
    		if(arr[i] == item){
    		return i;
    		}
    	}
    	return -1;
    }
    

    2.计算数组arr中所有元素的总和

    //不考虑算法复杂度,用递归
    function sum(arr){
    	var len = arr.length;
    	if(len == 0){
    		return 0;
    		}else if(len ==1){
    			return arr[0];
    		}
    	}else{
    		return arr[0] + sum(arr.slice(1));
    	}
    }
    
    //常规循环
    function sum(arr){
    	var s = 0;
    	for(var i = arr.length-1;i>=0;i--){
    		s+=arr[i];
    	}
    	return s;
    }
    
    //函数式编程map-reduce
    function sum(arr){
    	return arr.reduce(function(prev,curr,idx,arr)
    	return prev +curr;
    	});
    }
    
    //forEach遍历
    function sum(arr){
    	var s = 0;
    	arr.forEach(function(val,idx,arr)){
    		s += val;
    	},0);
    	return s;
    };
    
    //eval
    function sum(arr){
    	return eval(arr.join("+"));
    };
    

    3.移除数组arr中的所有值与item相等的元素。不要直接修改数组arr,结果返回新的数组

    //1.splice()
    function remove(arr,item){
    	var newarr = arr.slice(0);
    	for(var i = 0;i<newarr.length;i++){
    		if(newarr[i] == item){
    			newarr.splice(i,1);
    			i--;
    		}
    	}
    	return newarr;
    }
    
    //2.push()
    function remove(arr,item){
    	var newarr = [];
    	for(var i = 0;i<arr.length;i++){
    		if(arr[i] !=item){
    			newarr.push(arr[i]);
    		}
    	}
    	return newarr;
    }
    
    //3.Array y.protototype.filter()
    function remove(arr,item)
    
  • 相关阅读:
    Anaconda环境下安装库
    数据库定义、性质、演变
    web测试与app测试区别
    黑盒测试用例设计方法
    软件测试黑盒、灰盒、白盒测试的区别
    web端指什么?
    apache、tomcat和svn有什么作用,区别是什么
    H5如何测试?
    软件测试工具
    web与app测试重点
  • 原文地址:https://www.cnblogs.com/qichunlin/p/8480360.html
Copyright © 2011-2022 走看看