• 一个简单的js面试题


      在js群里看到有人发问,于是抱着练手的心态写了答了几个面试题,题目虽然不是太难,却很考验人的编程思维。汗颜,看了别人的答案后才发现自己好像笨了很多。 废话不说了 ,上代码。

    1 要求 给一个数组的最后一个元素加1 结果大于10则给前一个元素加1 并设置当前元素值=0;前一个元素亦是如此,例如 

     var a=new Array(3,9);
         a[1]+1;
       a=[3,9];
    

     此题看似很简单,只要最后一个元素等于10 就给钱一个元素加1,设置当前元素为0就是了,但还有一种特殊一点的情况,就是当数组的所有元素都为9时,还要在向数组内添加一个元素。我给出的答案如下:

        $(function () {
            add();
        })
            function add() {
                var a = [9,4];
                var b = a;
                var sum ;
                b[b.length - 1]=( b[b.length - 1] )+ 8;
                if (b[b.length - 1] >=10) {
                    b[b.length - 1] = b[b.length - 1] - 10;
                    var i = b.length - 2;
                    while (i> -2) {
                        if (i != -1) {
                            sum = b[i] + 1;
                            if (sum >=10) {
                                b[i] = sum - 10;
                            } else {
                                b[i] = sum;
                                break;
                            }
                            i--;
                        } else {
                            a = [1];
                            a.push(b);
                            i--;
                        }
                    }
                } else {
                    a = b;
                }
                alert(a);
            }

    看了别人写的代码,才发现自己吧问题复杂化了,写了一堆代码,如果使用js的unshift()函数会更好,向数组头部添加一个或多个元素并返回新的数字长度。汗,自己js了解的少也不知道有这么个方法。但这样写本质还是一样的,个人觉得最正确的写法应该是这样:

    //转换整数后计算在转为数组
    $.(function() {
     var num = [9,9,9,9,9],
      intA = parseInt(num.join(""));
     
     intA++;
     var newStr = intA.toString(),
      newArr = [];
     for(var i=0,l=newStr.length;i<l;i++) {
      newArr.push(parseInt(newStr[i]));
     }
     alert(newArr);
    });

    这个问题本来就是一个用数组模拟十进制加法的事,所以转换成数字来计算是最直接简单的。同时也发现一个问题,自己和别人的差距咋就这么大捏?

    还有一个查找一个字符串中“”个字符出现的次数的,例如'assddfsds'中a s d f 分别出现了几次,当时写了下但没有保存,在这里就不说了 有兴趣的可以自己去看下,注意,只限js语法;

  • 相关阅读:
    深入NET框架
    解决idea中maven的pom文件不会自动下载jar包问题
    JSP中的作用域
    转发与重定向
    JSP内置对象
    JNDI与连接池
    文件上传
    七大设计原则
    第六章 初始继承和多态
    C#和.NET框架
  • 原文地址:https://www.cnblogs.com/xdq-zh/p/3798234.html
Copyright © 2020-2023  润新知