• #js笔记1


    js笔记1


    reduce实现的功能:

    1. 需要作用到array上,起作用就是一个递归的过程,具体如下:
    	[x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4)
    	eg1:用reduce进行求和
    


    eg2:用reduce进行求积

    		<script>
            var arr=[1,2,3,4,6];
            var result=arr.reduce(function (x,y) {
                return x*y;
            });
            alert(result);
        	</script>.
    	eg3:要把[1, 3, 5, 7, 9]变换成整数13579
    		<script>
    	        var arr=[1,2,3,4,6];
    	        var result=arr.reduce(function (x,y) {
    	            return x*10+y;
    	        });
    	        alert(result);
    	    </script>
    	eg4:把一个字符串13579先变成Array——[1, 3, 5, 7, 9],再利用reduce()就可以写出一个把字符串转换为Number的函数。
    		     let arr = s.split('')
    			    arr = arr.map(x=>{
    			      return x*1
    			    })
    			    return arr.reduce((x,y)=>{
    			     return x*10+y
    			    })
    	eg5:请把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。输入:['adam', 'LISA', 'barT'],输出:['Adam', 'Lisa', 'Bart']。
    

    filter方法

    1. 在一个Array中,删掉偶数,只保留奇数,可以这么写: 
    	 var arr = [1, 2, 4, 5, 6, 9, 10, 15];
    		var r = arr.filter(function (x) {
    		    return x % 2 !== 0;
    		});
    		r; // [1, 5, 9, 15]
    2. 把一个Array中的空字符串删掉,可以这么写:
    
    	var arr = ['A', '', 'B', null, undefined, 'C', '  '];
    	var r = arr.filter(function (s) {
    	    return s && s.trim(); // 注意:IE9以下的版本没有trim()方法
    	});
    	r; // ['A', 'B', 'C']
    

    如果需要比较字符串,在js中无法使用equals()方法,即便idea提示可以使用,但是浏览器不会解析这个函数,而是报出这个方法没有定义的概念.例如:

    1.定义两个字符串
    	var s1="123456";
    	var s2="123455";
    	比较两个字符创相等
    	if(s1.valueOf==s2.valueOf){
    		TODO;
    	}
    day9.17 
    2.  需要用js实现的功能:用正则表达式进行判断用户输入的数据是否正确:
    
    	   <div class="panel-body bg-light p25 pb15">
                        <div class="section">
                                <label for="sn" class="field-label text-muted fs18 mb10">工号</label>
                                <label for="sn" class="field prepend-icon">
                                    <input type="text" name="sn" id="sn" class="gui-input" onblur="check()" placeholder="请输入工号...">
                                    <label for="sn" class="field-icon">
                                        <i class="fa fa-user"></i>
                                    </label>
                                    <div id="user_span" align="center" >
                                        <span id="userSpan" disabled="false"></span>
                                    </div>
                                </label>
                            </div>
    
    
    
    
    	function check() {
                    var sn=document.getElementById("sn").value;
                    var spanU=document.getElementById("userSpan");
                    //6位的数字和字母
                    var regx=/^w{5}$/;
                    if (regx.test(sn)) {
                        spanU.innerHTML = "正确".fontcolor("green");
                        setTimeout(function () {
                            document.getElementById("userSpan").innerHTML='<span id="userSpan" disabled="true"></span>';
                        },2000);
                        return true;
                    }else {
                        spanU.innerHTML="错误".fontcolor("red");
                        setTimeout(function () {
                            document.getElementById("userSpan").innerHTML='<span id="userSpan" disabled="true"></span>';
                        },2000);
    
                        return false;
                    }
            }
    
    使用js中的setTimeout方法,里面再嵌套方法来设置等待两秒后,设置span元素中的disabled属性为true。
    
    使用jquery的方法
    
    
    js下如果想页面跳转,可以使用location.assign("https://www.baidu.com")
    


    同理也可以使用location.href="https://www.baidu.com";
    location.reload()不支持任何参数,是个空参的函数,作用是重新刷新该页面重新加载


    如果点击提交或者登陆等按钮页面没有刷新或者跳转的动作的时候,先从button开始找原因,看是否btn的属性是否是summit,这个summit和action是相连的。


    js获取下拉框里面选中的数据,如果是单选的话
    var pLevel=$("#proLevel option:selected").val();
    如果是多选的话:
    var keyword = [];
        $("#proKeyword :selected").each(function(){
            keyword.push($(this).val());
        });
    
    通过ajax向后台传送数组:
    


    后台接收数组

    @RequestParam("keyword[]") String[] keyword

    字符串数组转化问字符串,无缝转化
    博客网站 https://yamon.top 个人网站 https://yamon.top/resume GitHub网站 https://github.com/yamonc 欢迎前来访问
  • 相关阅读:
    2019年春阅读笔记13——分布式系统的两种方式
    2019年春阅读笔记12——索引数据结构设相关的计算机原理
    2019年春阅读笔记11——常见的查询算法及数据结构
    2019年春阅读笔记10——数据库优化
    2019年春阅读笔记9——一些基础优化
    2019年春阅读笔记8——从不同层面进行SQL优化
    2019年春阅读笔记7——关于SQL优化
    2019年春阅读笔记6——继续说开源
    jQuery使用小技巧
    marquee 实现首尾相连循环滚动效果
  • 原文地址:https://www.cnblogs.com/chenyameng/p/12369596.html
Copyright © 2020-2023  润新知