js經(jīng)典算法記錄

隨機數(shù)組洗牌

function foo(arr){
var newarr = arr.slice();
for(let i=0,len = arr.length;i<len;i++){
    let index = Math.floor(Math.random() * len);
    [newarr[i], newarr[index]] = [newarr[index], newarr[i]];
}
return newarr;
}
console.log(foo([1, 2, 3, 4, 5, 6, 7]));

簡單的日期字符串排序

var date = ['2010-03-19', '2020-04-01', '2015-09-07', '2015-09-08'];
var aa =date.sort((a,b)=> Date.parse(b) - Date.parse(a) );
console.log(aa);

遞歸實現(xiàn)數(shù)組扁平化

function flatArr(arr){
    let tempArr=[];
    arr.forEach(item => {
        if (Array.isArray(item)){
           tempArr= tempArr.concat(flatArr(item));
        }else{
            tempArr.push(item);
        }
    });
    return tempArr;
}
console.log(flatArr([1,2,[3,4,[5,[[6]]]]]));

極簡版數(shù)組扁平化

[1,2,3,[4,5,[6,[[7]]]]].flat(Infinity);

記錄數(shù)組項重復(fù)次數(shù)

var arr = ['張三', '張三', 'zzz', '歷史', 'zzz', 'zzz'];
function getRepeatTimes() {
var Obj = {};
arr.forEach(item => {
    Obj[item] = (Obj[item] + 1) || 1; //Obj[item]如不存在,+1為NaN
})
    return Obj;
}
console.log(getRepeatTimes(arr))

冒泡排序

function arrSort(arr = []) {
    let len = arr.length;
    for (let i = 0; i < len; i++) {
        for (let k = 0; k < len - 1 - i; k++) {
            if (arr[k] > arr[k + 1]) {
                [arr[k], arr[k + 1]] = [arr[k + 1], arr[k]];
            }
        }
    }
    return arr;
}
console.log(arrSort([5, 3, 6, 1, 9, 4, 9, 4, 8, 7, 8, 6, 2]));

快速排序(適合數(shù)據(jù)量大的排序)

function quickSort(arr) {
    if (arr.length <= 1) {   return arr; }
    var midIndex = Math.floor(arr.length / 2);
    var mid = arr.splice(midIndex, 1)[0]; //取得中間基準(zhǔn)并刪除掉
    var left = [],right = [];
    for (var i = 0; i < arr.length; i++) {
        if (arr[i] <= mid) { //把基準(zhǔn)兩邊的數(shù)據(jù)分別存放到不同分區(qū)
            left.push(arr[i]);
        } else {
            right.push(arr[i]);
        }

    }
    return quickSort(left).concat([mid], quickSort(right));
}
console.log(quickSort([4, 8, 7, 3, 5, 1, 2, 9, 0, 7, 5]))
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末骑歹,一起剝皮案震驚了整個濱河市居暖,隨后出現(xiàn)的幾起案子回俐,更是在濱河造成了極大的恐慌镊绪,老刑警劉巖夹攒,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寒亥,死亡現(xiàn)場離奇詭異邮府,居然都是意外死亡,警方通過查閱死者的電腦和手機溉奕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門褂傀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人加勤,你說我怎么就攤上這事仙辟。” “怎么了鳄梅?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵叠国,是天一觀的道長。 經(jīng)常有香客問我戴尸,道長粟焊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮吆玖,結(jié)果婚禮上筒溃,老公的妹妹穿的比我還像新娘。我一直安慰自己沾乘,他們只是感情好怜奖,可當(dāng)我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著翅阵,像睡著了一般歪玲。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上掷匠,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天滥崩,我揣著相機與錄音,去河邊找鬼讹语。 笑死钙皮,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的顽决。 我是一名探鬼主播短条,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼才菠!你這毒婦竟也來了茸时?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后膀值,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡渠牲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了田晚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片嘱兼。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖贤徒,靈堂內(nèi)的尸體忽然破棺而出芹壕,到底是詐尸還是另有隱情,我是刑警寧澤接奈,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布踢涌,位于F島的核電站,受9級特大地震影響序宦,放射性物質(zhì)發(fā)生泄漏睁壁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望潘明。 院中可真熱鬧行剂,春花似錦、人聲如沸钳降。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽遂填。三九已至铲觉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間吓坚,已是汗流浹背撵幽。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留礁击,地道東北人盐杂。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像客税,于是被迫代替她去往敵國和親况褪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,486評論 2 348