一、寫出代碼對下列數組去重並從大到小排列{5,2,3,6,8,6,5,4,7,1,9}正則表達式
function fn(arr){ for (var i = 0; i < arr.length-1; i++) { for (var j = 0; j < arr.length-1-i; j++) { if(arr[ j]<arr[ j+1]){ var temp = arr[ j]; arr[ j]=arr[ j+1]; arr[ j+1]=temp; } } } for (i = 0; i < arr.length; i++) { var c=arr[i]; for (var s = i+1; s < arr.length; s++) { if(arr[s]==c) arr.splice(s,1); s--; } } } return arr; } console.log(fn([5,2,3,6,8,6,5,4,7,1,9]).toString());
二、用 JavaScript 實現冒泡排序。數據爲 2三、4五、1八、3七、9二、1三、24算法
//升序算法function sort(arr){ for (var i = 0; i <arr.length; i++) { for (var j = 0; j <arr.length-i; j++) { if(arr[ j]>arr[ j+1]){ var c=arr[ j];//交換兩個變量的位置arr[ j]=arr[ j+1]; arr[ j+1]=c; } }; }; return arr.toString(); } console.log(sort([23,45,18,37,92,13,24]));
三、用 js 實現隨機選取 10–100 之間的 10 個數字,存入一個數組,並排序json
function randomNub(aArray, len, min, max) { if (len >= (max - min)) { return '超過' + min + '-' + max + '之間的個數範圍' + (max - min - 1) + '個 的總數'; } if (aArray.length >= len) { aArray.sort(function(a, b) { return a - b }); return aArray; } var nowNub = parseInt(Math.random() * (max - min - 1)) + (min + 1); for (var j = 0; j < aArray.length; j++) { if (nowNub == aArray[ j]) { randomNub(aArray, len, min, max); return; } } aArray.push(nowNub); randomNub(aArray, len, min, max); return aArray; } var arr=[]; randomNub(arr,10,10,100);
四、已知數組 var stringArray = [「This」, 「is」, 「Baidu」, 「Campus」], Alert 出」This is Baidu Campus」。數組
答案:var stringArray = ["This", "is", "Baidu", "Campus"] alert(stringArray.join(""))
五、已知有字符串 foo=」get-element-by-id」,寫一個 function 將其轉化成駝峯表示法」getElementById」。dom
function combo(msg){ var arr=msg.split("-"); for(var i=1;i<arr.length;i++){ arr[i]=arr[i].charAt(0).toUpperCase()+arr[i].substr(1,arr[i].length-1); } msg=arr.join(""); return msg;
六、下面這段 JS 輸出什麼,並簡述爲何?ide
function Foo() { var i = 0; return function () { console.log(i++); } } var f1 = Foo(), f2 = Foo(); f1(); f1(); f2(); console.log(i); 0//f1=Foo() 至關於 f1 賦值爲函數 Foo()的返回值 f1=function(){ console.log(i++) } 1//由於 f1=了一個 function 因此有了做用域,f2 和 f1 不一樣,不在一個內存中0 報錯 //i 爲 Foo 內部的變量全局不可訪問,全局中沒有 i 變量因此會報錯
7 、 有 這 樣 一 個 URL: http://item.taobao.com/item.htm?a=1&b=2&c=&d=xxx&e
,請寫一段 JS 程序提取 URL 中的各個 GET 參數(參數名和參數個數不肯定),將其按key-value 形式返回到一個 json 結構中,如{a:’1′, b:’2′, c:」, d:’ xxx’, e:undefined}。函數
function serilizeUrl(url) { var urlObject = {}; if (/\?/.test(url)) { var urlString = url.substring(url.indexOf("?") + 1); var urlArray = urlString.split("&"); for (var i = 0, len = urlArray.length; i < len; i++) { var urlItem = urlArray[i]; var item = urlItem.split("="); urlObject[item[0]] = item[1]; } return urlObject; } return null; }
八、var numberArray = [3,6,2,4,1,5]; (考察基礎 API)
1) 實現對該數組的倒排,輸出[5,1,4,2,6,3]url
var numberArray = [3,6,2,4,1,5]; alert( numberArray .reverse())
2) 實現對該數組的降序排列,輸出[6,5,4,3,2,1]code
var numberArray = [3,6,2,4,1,5]; // a-b 輸出從小到大排序,b-a 輸出從大到小排序。numberArray .sort(function(a,b){ return b-a}); console.log((numberArray .join()));
九、輸出今天的日期,以 YYYY-MM-DD 的方式,好比今天是 2014 年 9 月 26
日,則輸出 2014-09-26htm
var d = new Date(); // 獲取年,getFullYear()返回 4 位的數字var year = d.getFullYear(); // 獲取月,月份比較特殊,0 是 1 月,11 是 12 月var month = d.getMonth() + 1; // 變成兩位 month = month < 10 ? '0' + month : month; // 獲取日 var day = d.getDate(); day = day < 10 ? '0' + day : day; alert(year + '-' + month + '-' + day);
十、將字符串」<tr><td>{$id}</td><td>{$name}</td></tr>」中的{$id} 替換成 10,{$nny (使用正則表達式)
答 案 : 」 <tr><td>{$id}</td><td>{$id}_{$name}</td></tr> 」 .replace(/{\$id}/g, ’ 10′).replace(/{\$name}/g, ‘Tony’);