#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

字符串数组转化问字符串,无缝转化

猜你喜欢

转载自www.cnblogs.com/chenyameng/p/12369596.html
今日推荐