js 常見演算法操作

2022-07-13 06:54:09 字數 4043 閱讀 8511

字串操作

判斷回文字串12

3456

78910

1112

1314

functionpalindrome(str)

翻轉字串

思路1:反向遍歷字串12

3456

functionreversestring(str)

思路2:轉化成array操作。12

3456

78910

1112

functionreversestring2(str)

returnarr.join("");

}

ps:什麼?你要問為啥不直接操作str? 因為str[i]是唯讀的,不能str[0]=str[1]這樣操作。

再ps:如果允許用reverse(),也可以用'str'.split('').reverse().join('')實現。

生成指定長度隨機字串

ps:配合模糊等效果可以生成個驗證碼- -12

3456

7functionrandomstring(n)

統計字串中次數最多字母

ps:利用object中key的唯一性,利用key來進行篩選,然後計數。12

3456

78910

1112

1314

1516

1718

1920

2122

functionfindmaxduplicatechar(str)

varcharobj = {};

for(vari = 0; i < str.length; i++)else

}

varmaxchar ='',

maxvalue = 1;

for(varkincharobj)

}

returnmaxchar +':'+ maxvalue;

}

陣列操作

1. 陣列去重

ps: 還是利用object中key的唯一性,利用key來進行篩選。12

3456

78910

11functionunique(arr)

vardata =

for(variinarr)

}

returndata;

}

2. number陣列中最大差值12

3456

78910

functiongetmaxprofit(arr)

returnmax - min;

}

其他常見演算法

1. 階乘

1.1 非遞迴實現12

3456

78functionfactorialize(num)

1.2 遞迴實現12

3456

78functionfactorialize(num)

}

2. 生成菲波那切數列

ps:斐波那契數列,又稱**分割數列,指的是這樣乙個數列:0、1、1、2、3、5、8、13、21、34、……在數學上,斐波納契數列主要考察遞迴的呼叫。通過定義fibo[i] = fibo[i-1]+fibo[i-2];來生成斐波那契陣列。

2.1 強行遞迴實現12

3456

78910

1112

1314

15functiongetfib(n)

}

functionfibo(len)

2.2 簡約非遞迴版12

3456

78910

1112

13functiongetfibonacci(n)else

i++;

}

returnfibarr;

}

3. 二分查詢

ps:二分查詢又稱折半查詢,是在有序陣列查詢中用到的較為頻繁的一種演算法,優點是比較次數少,查詢速度快,平均效能好;其缺點是要求待查表為有序表,且插入刪除困難。

3.1 非遞迴實現12

3456

78910

1112

1314

15functionbinary_search(arr, key)elseif(key > arr[mid])elseif(key < arr[mid])

}

return-1;

};

3.2 遞迴實現12

3456

78910

11functionbinary_search2(arr, low, high, key)

js 常見操作

原始資料型別 symbol 表示獨一無二的值,最大的用法是用來定義物件的唯一屬性名 let sy symbol key1 寫法1 let syobject syobject sy kk console.log syobject 寫法2 let syobject console.log syobjec...

js陣列常見操作

var arr new array 1 新增元素 arr.push a arr.push b arr.push c 乙個引數 arr.push d e 二個引數 arr.push f g 引數為陣列 2 刪除元素 1 刪除元素方式一 arr.splice 陣列下標,刪除個數 陣列下標從0開始 刪除個...

JS 常見排序演算法

氣泡排序 function bubblesort myarray return myarray function swap myarray,p1,p2 var myarray 3 44,38 5,47 15,36 26,27 2,46 4,19 50,48 var result bubblesort...