冒泡排序
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;
}
編寫一個函數,將url后的參數串解析成hash形式的對象、
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());
千分符
var str2=46548978911; function qianff(str){ var strn=str.toString(), len=strn.length, ind=len%3, //console.log(strn) newstr=strn.substr(0,ind); console.log(newstr); if(ind==0){ newstr=strn.substr(0,3); ind=3; //console.log(newstr); } for(i=ind;i<len;i=i+3){ newstr+=","+strn.substr(i,3); } return newstr; } console.log(qianff(str2))
快速排序
function quickSort(arr){ //如果數組<=1,則直接返回 if(arr.length<=1){return arr;} var pIndex=Math.floor(arr.length/2); //找基准,並把基准從原數組刪除 var result=arr.splice(pIndex,1); //定義左右數組 var left=[]; var right=[]; //比基准小的放在left,比基准大的放在right for(var i=0;i<arr.length;i++){ if(arr[i]<=result){ left.push(arr[i]); } else{ right.push(arr[i]); } } //遞歸 return quickSort(left).concat(result,quickSort(right)); } console.log(quickSort([1,89,56,4,2,2]))
輸出執行順序:

Promise代碼then之前的代碼會立即執行。
then之后會放入微任務執行
then里邊的代碼是回調
交給異步模塊處理
未完待續>>>
溫故而知新~
