web前端總結面試問題<經常遇到的手寫程式碼 - - >(二)
阿新 • • 發佈:2018-12-20
氣泡排序
編寫一個函式,將url後的引數串解析成hash形式的物件、
將首字母大寫
var arr = [5,8,3,6,9] for(var i=0;i<arr.length;i++){ for(var j=i+1;j<arr.length;j++){ if(arr[i]>arr[j]){ var temp temp=arr[i]; arr[i]=arr[j]; arr[j]=temp; } } } console.log(arr)//temp是中間變數,把要交換的第一個元素arr[j]賦值給中間變數,也是把第一個元素儲存起來 //第二個元素賦值給第一個元素,因為第一個元素我們已經儲存在中間變數中了,所以我們不用擔心它的值會被覆蓋掉 //temp儲存了第一個元素的值,把它賦值給第二個元素,就是把第一個元素賦值給第二個元素了,到這一步,兩個元素已經交換位置了 程式設計實現IndexOf方法
var brr=[5,9,6,3,2,5]; function indexfun(arr,val){ for(var i=0;i<arr.length;i++){ if(arr[i]==val){ return i; } } return -1; } console.log(indexfun(brr,13));寫一個方法實現parseInt函式 將字串轉化成整型
function _parseInt(str, radix) { let str_type = typeof str; let res = 0; if (str_type !== 'string' && str_type !== 'number') { // 如果型別不是 string 或 number 型別返回NaN return NaN } // 字串處理 str = String(str).trim().split('.')[0] let length = str.length; if (!length) { // 如果為空則返回 NaN return NaN } if (!radix) { // 如果 radix 為0 null undefined // 則轉化為 10 radix = 10; } if (typeof radix !== 'number' || radix < 2 || radix > 36) { return NaN } for (let i = 0; i < length; i++) { let arr = str.split('').reverse().join(''); res += Math.floor(arr[i]) * Math.pow(radix, i) } return res; }
var url = "http://www.taobao.com/index.php?key0=0&key1=1&key2=2..."; var obj = parseQueryString(url); console.log(obj) function parseQueryString(argu){ var str = argu.split('?')[1]; var result = {}; var temp = str.split('&'); for(var i=0; i<temp.length; i++){ var temp2 = temp[i].split('='); result[temp2[0]] = temp2[1]; } return result; }
function titleCase(str){ var a = str.toLowerCase().split(' '); var b = a.map(function(val){return val.replace(val.charAt(0),val.charAt(0).toUpperCase())}) return b.join(' '); }
求二維陣列所有數的和(封裝函式)
function sum(arr){ var total=0; for(var i=0;i<arr.length;i++){ for(var j=0;j<arr[i].length;j++){ total+=arr[i][j] } } return total; }編寫一個方法 求一個字串的位元組長度 假設: 一個英文字元佔用一個位元組,一箇中文字元佔用兩個位元組
function GetBytes(str){ var len = str.length; var bytes = len; for(var i=0; i<len; i++){ if (str.charCodeAt(i) > 255) bytes++; } return bytes; } alert(GetBytes("你好,as"));編寫一個方法 去掉一個數組的重複元素
var arr = [1 ,1 ,2, 3, 3, 2, 1]; Array.prototype.unique = function(){ var ret = []; var o = {}; var len = this.length; for (var i=0; i<len; i++){ var v = this[i]; if (!o[v]){ o[v] = 1; ret.push(v); } } return ret; }; alert(arr.unique());
未完待續>>>
溫故而知新~