• 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)
    
  • 相关阅读:
    jQuery 集合 搜索操作(父辈元素搜索、同辈元素搜索、子元素搜索)
    struts <s:form action=""> 和 <s:submit action=""> 的区别
    654. 最大二叉树
    701. 二叉搜索树中的插入操作
    617. 合并二叉树
    98. 验证二叉搜索树
    236. 二叉树的最近公共祖先
    700. 二叉搜索树中的搜索
    235. 二叉搜索树的最近公共祖先
    105. 从前序与中序遍历序列构造二叉树
  • 原文地址:https://www.cnblogs.com/qichunlin/p/8480360.html
Copyright © 2020-2023  润新知