一個簡單的js面試題

來源:互聯網
上載者:User

  在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(",").replace(/,/gi, ""));  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文法;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.