美文网首页
web前端面试题-javascript(三)-编程算法题(1)

web前端面试题-javascript(三)-编程算法题(1)

作者: 看庭前花开花落_望天上云卷云舒 | 来源:发表于2019-12-26 10:19 被阅读0次

答案只做参考,如有更好的方法欢迎留言!

1、 实现数组去重方法?(js算法)

利用对象的键值对方法:把数组中的每一项当作一个对象的属性名和属性值存储起来,但在存储之前我们需要判断下这一项是否已经存在了,如果已经存在了就说明重复了,我们把数组中最后一项拿过来替换当前这一项,再删出数组中最后一项,再i--因为我们需要比较当前这个从后边拿过来的这一项

    //利用对象的键值对方法
    var ary=[1,2,3,5,2,4,6,5,1];
    var obj={};
    for(var i=0;i<ary.length;i++){
        var curAry=ary[i];
        if(obj[curAry]==curAry){
            ary[i]=ary[ary.length-1];
            ary.length--;
            i--;
            continue;
        }
        obj[curAry]=curAry;
    }
console.log(ary);
2 、写一个function,清除字符串前后的空格。 (兼容所有浏览器)
function trim (str){
    if(str && typeof str==='string'){
        return str.replace(/(^\s+)|(\s+$)/g,'')
    }
}
var str='   bacdd   '
console.log(trim(str))
3、如果获取网页传输过来的参数a的值(http://192.168.0.1/index.html?a=100)
function urlParse(){
    let url=window.location.search //获取到从?开始的url部分
    let obj={}
    let  reg=/[?&][^?&]+=[^?&]+/g
    let arr=url.match(reg)
// ['?id=123456','&a=b']
if(arr){
   arr.forEach((item)=>{
    let tempArr=item.substring(1).split('=')
                //可以对encodeURIComponent编码的URL进行解码
    let key=decodeURIComponent(tempArr[0])
    let val=decodeURIComponent(tempArr[1])
    obj[key]=val
    })
}
return obj
}
4、第一个人10岁,第二个比第一个人大2随,依次递推,请用递归编写一个方法,可以计算出第8个人多大
function age(n){
     if(n===0){return 0}
     if(n===1){return 10}
     return age(n-1)+2
}
console.log(age(8))  //24
5、一个长度不超5位的正整数转换成对应的中文字符串,例如:20876 返回“两万零八百七十六”
function numstr(num){
     var str1="零壹贰叁肆伍陆柒捌玖拾 ";
     var str2="万千百十";
     var str='';
     for(var i=0;i<num.length;i++){
         var cur=num[i];
         str+=str1.charAt(cur);
         //如果是最后一个那么不用加,如果数字是0也不用加
         if(Number(num[i])!==0 && i!==num.length-1){
            //传过来的数字长度是<=5的
                str+=str2.substring(5-num.length).charAt(i)
        }
     }
     return str
}
console.log(numstr('876'))  //捌百柒十陆
6、什么是冒泡排序?(js算法)
function arySort(ary){
    var temp=null;
    var flag=true;
    for(var i=0;i<ary.length-1;i++){
        for(var j=0;j<ary.length-1-i;j++){
            if(ary[i]>ary[i+1]){
                temp=ary[i];
                ary[i]=ary[i+1];
                ary[i+1]=temp;
                flag=false
            }
            if(flag){
                break;
            }
        }
    }
    return ary
}

var arynum=[2,1,5,3,4]
console.log(arySort(arynum));
7、数组快速排序 (也是用递归实现一分二查找法的一种算法)
 function insertSort(ary) {
        var newAry=[];
        newAry.push(ary[0]);
        for(var i=1;i<ary.length;i++){
            cur=ary[i];
            for(var j=newAry.length-1;j>=0;){
                if(cur<newAry[j]){
                    j--;
                    if(j<0){
                        newAry.unshift(cur);
                    }
                }else{
                    newAry.splice(j+1,0,cur);
                    break;
                }
            }
        }
        return newAry;
    }
    var ary0=[9,0,8,6,4,9,2]
    console.log(insertSort(ary0));
8、编写一个指定长度的字符串,包含数字和字母
Function getStr(n){
   Var newStr=””;
Var str=”abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789”
For(var i=0;i<n;i++){
newStr+=str.charAt(Math.round(Math.random()*str.length))
}
}
9、数字的千位分割 写一个方法
function parseNumber(str){
     //?= 匹配一个位置,这个内容候忙需要满足的条件
     //?! 匹配一个位置,这个位置后面不能满足的条件
     //B 非单词边界符
     var  re = /\B(?=(\d{3})+(?!\d))/g;
     console.log(re);
     return str.replace(re, ',');
}
alert(parseNumber('1234567890'));  //123,456,789
10、写一个生成11-20之间随机数的函数
 function getRound(n,m){
            n=Number(n);
            m=Number(m);
            if(isNaN(n)||isNaN(m)){
                return Math.random();
            }
            if(n>m){
                var temp=null;
                temp=n;
                n=m;
                m=temp;
            }
        return Math.round(Math.random()*(m-n)+n)
    }
11、创建一个js类,模拟实现方法的重载
function A(){
      this.a=null;
      this.b=null;
}
var pro=A.prototype;
pro.add=function(){
      if(arguments.length==1){
             console.log(arguments[0])
      }
      if(arguments.length==2){
         var result=arguments[0]+arguments[1]
         console.log(result)
      }
}
var a=new A()
      a.add(1)
      a.add(1,2)

12、【编程题】有一篮子鸡蛋,一个一个的拿能拿完,两个两个的拿剩一个,三个三个的拿剩一个,四个四个的拿剩一个,五个五个的拿剩一个,六个六个的拿能拿完,篮子里有多少鸡蛋

function num(){
     for(var i=1;i<9999;i++){
           if(i%1==0 && i%2==1 && i%3==1 && i%4==1 && i%5==1 && i%6==0){
    console.log(i);
                break;
            }
     }
}
num()

13、拖拽的原理
1.当鼠标在盒子上按下的时候,我们给onmousedown绑定一个事件,
2.在事件里记录下鼠标和盒子的起始位置,同时在方法里给元素的onmousemove和onmouseup绑定移动事件mov和抬起事件up
3.在移动事件move方法里当前鼠标的位置,通过当前鼠标的位置-鼠标的起始位置+元素的起始位置,计算出当前元素的位置,设置当前元素的位置
4.在抬起事件up方法里移除元素的onmousemove和onmouseup事件

 //js实现让当前元素在屏幕居中的位置
    var box=document.getElementById("box");
    box.style.top=((document.documentElement.clientHeight||document.body.clientHeight)-box.offsetHeight)/2+"px";
    box.style.left=((document.documentElement.clientWidth||document.body.clientWidth)-box.offsetWidth)/2+"px";

    box.onmousedown=down;
    function down(e){
        e=e||window.event;
        //记录开始位置的信息
        this["strX"]=e.clientX;
        this["strY"]=e.clientY;
        this["strL"]=parseFloat(this.style.left);//得到的值是加单位的需要parseFloat下
        this["strT"]=parseFloat(this.style.top);

        //给元素绑定移动和抬起的事件
        if(this.setCapture){
        this.setCapture();//把当前的鼠标和this(#box)绑定在一起
        this.onmousemove=move;
        this.onmouseup=up;
        }else{
            //这样绑定的话move 和up里的this就成document了
            // document.onmousemove=move;
            // document.onmouseup=up;
            var _this=this;//_this就是#box
            document.onmousemove=function(e){
                //匿名函数中的this--->document
                //move(e); move方法中的this是window
                move.call(_this,e);
            }
            document.onmouseup=function(e){
                up.call(_this,e);
            }
        }
    }
    function move(e){
        e=e||window.event;
       var curL=e.clientX-this["strX"]+this["strL"];
       var curT=e.clientY-this["strY"]+this["strT"];
       //边界判断
        var minL=0,maxL=(document.documentElement.clientWidth||document.body.clientWidth)-this.offsetWidth,
            minT=0,maxT=(document.documentElement.clientHeight||document.body.clientHeight
            )-this.offsetHeight;
        curL=curL<minL?minL:(curL>maxL?maxL:curL);
        curT=curT<minT?minT:(curT>maxT?maxT:curT);
        this.style.left=curL+"px";
        this.style.top=curT+"px";
    }
    function up(e){
        if(this.releaseCapture){
        this.releaseCapture();//把当前鼠标和#box这个盒子解除绑定
        //当鼠标抬起时让onmousemove和onmouseup都移除
        this.onmousemove=null;
        this.onmouseup=null;
        }else{
            document.onmousemove=null;
            document.onmouseup=null;
        }
    }

14、实现 (5).add(3).minus(2),使其输出结果为6
问题解析:
数字5可以调用add这个方法那么add这个方法肯定是number原型上的方法;
每一个方法执行完都要返回来NUMBER这个类的实例,这样才可以继续调用NUMBER类原型中的 方法(链式写法);
代码实现:

~function(){
    function check(n){
        n=Number(n);
        return isNaN(n)?0:n;
    }
   function add(n){
        n=check(n);
        return this + n;
    }
    function minus(n){
        n=check(n);
        return this - n
    }
    Number.prototype.add=add;
    Number.prototype.minus=minus;
    //也可以像下边这样写
    // ['add','minus'].forEach(item=>{
    //     Number.prototype[item]=eval(item)
    // })
}()
console.log((5).add(3).minus(2));//6

15、利用递归实现对象的深度拷贝

function copy(obj){
    let newobj = null;
    if(typeof(obj) == 'object' && obj !== null){
        newobj = obj instanceof Array? [] : {};
        for(var i in obj){
            newobj[i] = copy(obj[i])
        }
    }else{
        newobj = obj
    }
    return newobj;
}
16、选马问题
题目描述:

有两组马 A 和 B,每一组都有若干匹马。假设所有的马跑的速度都是匀速, 请从两组马中选出 跑步速度最接近的两匹马。输入数组 A 和 B,其中 A[i]和 B[j]分别是 A 组第 i 匹和 B 组第 j 匹 的速度。输出速度差最小的两匹马之间的速度差值。 例如 A = { 1, 3, 5, 7, 10 }, B = { 2, 3, 6, 9 }, 则输出为 0。

输入:

第一行第 1 个数为 A 组的马的数量 n,后面有 n 个数表示每匹马的速度。 第二行第 1 个数为 B 组的马的数量 m,后面有 m 个数表示每匹马的速度。 每行数字用空格分割。 马的速度为大于 0 小于 2147483647 的整数

输出:

输出最小值

样例输入:

5 1 7 5 3 10
4 2 9 6 3

样例输出 :

0

提示:

要求程序时间和空间复杂度尽可能低。

样例程序:

function select(A, B) {
// A = [5, 1, 7, 5, 3, 10]
// B = [4, 2, 9, 6, 3]
实现算法
return answer;
}

实现代码:(答案不是标准,可自行优化)
<style>
        *{
            margin:0;
            padding:0;
        }
        input{
            width:200px;
            height:24px;
            line-height: 24px;
            margin:10px
        }
        .onebox{
            width:500px;
            margin:0 auto
        }
    </style>
<div class="onebox">
    马1:<input id="ma1" oninput="rangeType(this)" onblur="rangeNum(this)"><br/>
    马2:<input id="ma2" oninput="rangeType(this)" onblur="rangeNum(this)"><br/>
    <button id="btn">提交</button><br/>
    结果:<input id="result">
</div>
<script>
    var ma1=document.getElementById("ma1"),
        ma2=document.getElementById("ma2"),
        result=document.getElementById("result"),
        btn=document.getElementById("btn");
    //oninput只能输入空格或者数字
    function rangeType(ele){
        return ele.value=ele.value.replace(/[^\d\-\s]/g,"")
    }
    //失去焦点的时候判断数字是否在规定的范围内
    function rangeNum(ele){
        var eleArry=ele.value.trim().split(/\s+/g);
        var flag=false;
        eleArry.forEach(function(item){
            if(item>2147483647||item<0){
                flag=true
            }
        })
        if(flag){
            alert("马的速度为大于 0 小于 2147483647 的整数");
        }
    }

    //点击btn按钮输出结果
    btn.onclick=function(){
        //获取到两个输入框里的内容
        //把获取到的内容按照 空格拆分成数组
        var A=ma1.value.trim().split(/\s+/g),
            B=ma2.value.trim().split(/\s+/g);
        select(A,B)
    }
    //去掉首尾空格
    function trim(){
        return this.replace(/(^\s+)|(\s+&)/g)
    }
    //执行方法
    function select(ary1,ary2){
        //把A组马和B组马的第一项删除
         ary1.shift();
         ary2.shift();
        //定义一个空数组来存所有的差值
        var resultArray=[];
        //循环第一组马的数组:让第一组马的每个速度和第二组马的每个速度相减
        for(var i=0;i<ary1.length;i++){
            //获取到第一组马的当前马的速度
            var ary1Cur=ary1[i]
            //循环第二组马的数组
            for(var j=0;j<ary2.length;j++){
                //获取到第二组马的当前马的速度
                var ary2Cur=ary2[j];
                //计算出差值
                var decre=Math.abs(ary1Cur-ary2Cur);
                //如果存放差值的数据里是空的 直接把差值 存进去
                if(resultArray.length===0){
                    resultArray.push(decre)
                }else{
                    //否则判断一下当前这个差值是否在 差值数组里存在
                    for(var q=0;q<resultArray.length;q++){
                        var cur=resultArray[q]
                        if(cur==decre){
                            //存在的话什么都不做跳出循环
                            continue;
                        }
                        //不存在的话存进 差值数组里
                        resultArray.push(decre)
                    }
                }
            }
        }
        //得到的差值从小到大排列
        resultArray=resultArray.sort(function(a,b){
            return a-b
        })
        //获取最小的一个
        var min=resultArray[0]
        //赋值给result 输出框
        result.value=min
    }
17、协会选举:
题目描述:

某协会进行投票选举选出主席。总共 m 个候选人,共 n 个人参加投票。每人投一票,每张票填写 一位候选人序号,没有弃权票。 规定得票超过 n/k 的人当选(假设有且仅有一人得票超过 n/k)。给出所有选票,编写程序找出 当选人序号。

输入:

一共 n+1 个整数,用空格分隔。第一个整数是 k,第二个整数开始每个数代表每张选票上的候选 人序号(大于 0 小于 2147483647 的整数)。

输出:

当选的候选人序号。

样例输入 Copy:

3 1 1 2

样例输出 Copy:

1

提示:

要求程序时间和空间复杂度尽可能低。

样例程序:

function select(A) {
// A = [3, 1, 1, 2]
实现算法
return answer;
}

实现代码:(答案不是标准,可自行优化)
<style>
        *{
            margin:0;
            padding:0;
        }
        input{
            width:200px;
            height:24px;
            line-height: 24px;
            margin:10px
        }
        .twobox{
            width:500px;
            margin:0 auto
        }
    </style>
<div class="twobox">
    投票:<input id="voteInput" oninput="rangeType(this)" onblur="rangeNum(this)"><br/>
    <button id="btn">提交</button><br/>
    结果:<input id="result">
</div>
<script>
    var voteInput=document.getElementById("voteInput"),
        result=document.getElementById("result"),
        btn=document.getElementById("btn");

    //oninput只能输入空格或者数字
    function rangeType(ele){
        return ele.value=ele.value.replace(/[^\d\-\s]/g,"")
    }
    //失去焦点的时候判断数字是否在规定的范围内
    function rangeNum(ele){
        var eleArry=ele.value.trim().split(/\s+/g);
        var flag=false;
        eleArry.forEach(function(item){
            if(item>2147483647||item<0){
                flag=true
            }
        })
        if(flag){
            alert("每个数值为大于 0 小于 2147483647 的整数");
        }
    }
    //去掉首尾空格
    function trim(){
        return this.replace(/(^\s+)|(\s+&)/g)
    }
    //点击btn按钮输出结果
    btn.onclick=function (){
       var voteInputValue=voteInput.value.trim();
       var voteArray=voteInputValue.split(/\s+/g);
        select(voteArray)
    }
    function select(voteArray){
        //把所有差值放到obj对象里
        var obj={};
        //删除第一项
        voteArray.shift();
        if(voteArray){
            for(var i=0;i<voteArray.length;i++){
                var curVotePerson=voteArray[i];
                //判断obj中是否存在这一项(这一条很重要)
                if(obj[curVotePerson]){
                    //如果存在就累加1
                    obj[curVotePerson]++
                }else{
                    //如果不存在就给它赋值为1
                    obj[curVotePerson]=1
                }
            }
            //获取到obj里最多的票数 和 最多票数的人
            //假设法:先假设 最多的票数是0  最多票数的人是数组中的第一个元素(这一条很重要)
            var maxVote=0;
            var votePersion=voteArray[0]
            for(var key in obj){
                var curKey=obj[key]
                if(curKey>maxVote){
                    maxVote=curKey;
                    votePersion=key
                }
            }
        }
        //把最后票数最多的人赋值给结果result
        result.value=votePersion
    }

18、对于下面每项功能,您愿意支付费用的最高功能规格各是什么?

QQ截图20191226111140.png
要求:

- 拖动Level下的选项到右边Selected方框下
- 每行只能拖动1项;如果拖动第2项,则自动替换之前的项
- 下方放置“提交”按钮,位于表格右下方

实现代码:仅供参考
<style>
        *{margin:0;padding:0;}
        table{border-collapse:collapse;}
        .questionbox{width:90%;margin:0 auto}
        fieldset{margin:20px;padding:20px}
        .productbox textarea:nth-child(1){background-color: #aaa}
        .productbox textarea:nth-child(2){background-color: #ccc}
        .productbox textarea:nth-child(3){background-color: #cfcfcf}
        .btn{padding:5px 10px;clear:both;margin:10px auto}
        .phoneInput{width:200px; height: 24px}
        .tip{color:#ff0000}
        .tablebox{width:80%}
        .tablebox tr th,.tablebox tr td{border:1px solid #ccc;padding:10px}
        .tablebox span{display:block;border:1px solid #ccc;width:130px;padding:5px;margin:5px}
        #sizediv{width:100%;height:200px;background-color:#cfcfcf}
        #ratiodiv{width:100%;height:150px;background-color:#cfcfcf}
    </style>
<div class="questionbox">
        <fieldset class="productbox">
            <legend>a. 听到保健食品这个词语的时候,您会立即想到哪些具体的产品?请把你最先想到的3个产品名称写下来。</legend>
            <div>
                <textarea id="product1" oninput="productname(this)" cols="30" rows="5" class="productname" placeholder="只能填文字/字母,不能有数字或符号"></textarea>
                <textarea id="product2" oninput="productname(this)" cols="30" rows="5" class="productname" placeholder="只能填文字/字母,不能有数字或符号"></textarea>
                <textarea id="product3" oninput="productname(this)" cols="30" rows="5" class="productname" placeholder="只能填文字/字母,不能有数字或符号"></textarea>
            </div>
            <button class="btn">next</button>
        </fieldset>
        <fieldset class="lastphone">
            <legend>b.  您最近购买的一台智能手机的零售价是多少?</legend>
            <input class="phoneInput" id="phoneInput"
                   oninput="phoneInputNum(this)"
                   onblur="maxNum(this)"
                   placeholder="只能输入1-99999之间的数字">
            <span class="tip"></span><br/>
        <input type="checkbox" id="phonecheck" onchange="changeCheck(this)"><label for="phonecheck">我不清楚/不记得价格</label>
        </fieldset>
        <fieldset class="price">
            <legend>c. 对于下面每项功能,您愿意支付费用的最高功能规格各是什么?</legend>
            <table class="tablebox">
                <tr>
                    <th  width="30%">功能</th>
                    <th width="30%">规格</th>
                    <th>选择</th>
                </tr>
                <tr>
                    <td>屏幕大小</td>
                    <td id="size">
                        <span id="drag1" draggable="true" ondragstart="drag(event)">4"</span>
                        <span id="drag2" draggable="true" ondragstart="drag(event)">4.5"</span>
                        <span id="drag3" draggable="true" ondragstart="drag(event)">5"</span>
                        <span id="drag4" draggable="true" ondragstart="drag(event)">5.5”</span>
                        <span id="drag5" draggable="true" ondragstart="drag(event)">6"</span>
                        <span id="drag6" draggable="true" ondragstart="drag(event)">6.5"</span>
                    </td>
                    <td>
                        <div id="sizediv" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
                    </td>
                </tr>
                <tr>
                    <td>屏幕分辨率</td>
                    <td id="ratio">
                        <span id="drag7" draggable="true" ondragstart="drag(event)">高清(720p)</span>
                        <span id="drag8" draggable="true" ondragstart="drag(event)">全高清(1080p)</span>
                        <span id="drag9" draggable="true" ondragstart="drag(event)"> 四倍高清(2K)</span>
                        <span id="drag10" draggable="true" ondragstart="drag(event)">超高清(4K)</span>
                    </td>
                    <td>
                        <div id="ratiodiv" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
                    </td>
                </tr>
            </table>
            <button id="submitData" onclick="submitData()">提交</button>
        </fieldset>
    </div>
    <script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
    <script>
        //a、3个产品输入的时候触发 productname这个函数进行验证
        function productname(ele){
            var textVal=$(ele).val();
            var reg=/[^a-zA-Z\u4e00-\u9fa5]/g
            textVal=textVal.replace(reg,"")
            $(ele).val(textVal)
        }
        //b、input框输入的时候过滤只能输入数字
        function phoneInputNum(ele){
            var textVal=$(ele).val();
            var reg=/[^0-9]/g;
            textVal=textVal.replace(reg,"");
            $(ele).val(textVal)
        }
        //b、input框失去焦点的时候判断是否在1-9999之间
        function maxNum(ele){
            var textVal=$(ele).val();
            if(textVal>99999 || textVal<1){
                $(ele).next().text("只能输入1-99999之间的数字")
            }
        }
        //如果勾选了  我不清楚/不记得价格,让input框为disabled
        function changeCheck(ele){
            if(ele.checked){
                //禁止input框
                $("#phoneInput").attr("disabled",true);
                //清空input框里的内容
                $("#phoneInput").val("");
                //input框的提示信息
                $(ele).prevAll(".tip").text("")
            }else{
                $("#phoneInput").attr("disabled",false);
            }
        }

        //规定在何处放置被拖拽数据
        function allowDrop(ev){
            ev.preventDefault();
        }
        //规定被拖拽的数据
        function drag(ev){
            ev.dataTransfer.setData("Text",ev.target.id);
        }

        function drop(ev){
            //console.log(ev.target);
            ev.preventDefault();
            //当前被拖动元素的id
            var data=ev.dataTransfer.getData("Text");
            //获取当前被拖动的元素
            var currentEle=document.getElementById(data)
            //获取到当前被拖动元素的父级
            var parentNode=currentEle.parentElement
            //获取到被拖动元素所在的div  size  ratio
            var size=document.getElementById("size")
            var ratio=document.getElementById("ratio")
            //获取到两个目标元素
            var sizediv=document.getElementById("sizediv")
            var ratiodiv=document.getElementById("ratiodiv")

            //如果当前拖动元素的父级的id是size,那个只能放到sizediv里
            if(parentNode.id==="size"){
                //如果sizediv里没有已经选中的元素
                if(sizediv.getElementsByTagName("span").length==0){
                    sizediv.appendChild(currentEle)
                }else{
                    //获取到sizediv里的第一个子元素
                    var firstSpan=sizediv.getElementsByTagName("span")[0];
                    //把第一个元素添加到 当前拖动元素的父节点size里中
                    size.appendChild(firstSpan);
                    //把当前被拖动的元素放到目标元素里
                    sizediv.appendChild(currentEle);
                }
            }
            //如果当前拖动元素的父级的id是ratio,那个只能放到ratiodiv里
            if(parentNode.id==="ratio"){
                //如果ratiodiv里没有已经选中的元素
                if(ratiodiv.getElementsByTagName("span").length==0){
                    ratiodiv.appendChild(currentEle)
                }else{
                    //获取到ratiodiv里的第一个子元素
                    var firstSpan=ratiodiv.getElementsByTagName("span")[0];
                    //把第一个元素添加到 当前拖动元素的父节点ratio里中
                    ratio.appendChild(firstSpan);
                    //把当前被拖动的元素放到目标元素里
                    ratiodiv.appendChild(currentEle);
                }
            }
        }
        //存储所有数据
        var dataObj={
            product1:"",
            product2:"",
            product3:"",
            phoneInput:"",
            phonecheck:"",
            sizediv:"",
            ratiodiv:""
        }
        //提交数据
        function submitData(){
            dataObj={
                product1: $("#product1").val(),
                product2: $("#product2").val(),
                product3: $("#product3").val(),
                phoneInput: $("#phoneInput").val(),
                phonecheck: $("#phonecheck[type=checkbox]:checked").next().text(),
                sizediv: $("#sizediv span").text(),
                ratiodiv: $("#ratiodiv span").text()
            }
            console.log(dataObj)
//          $.ajax({
//              url:"",
//                type:"post",
//              data:dataObj,
//              success:function () {
//
//                }
//          })
        }
    </script>
实现后的效果:
QQ截图20191226112154.png

相关文章

网友评论

      本文标题:web前端面试题-javascript(三)-编程算法题(1)

      本文链接:https://www.haomeiwen.com/subject/edptbctx.html