最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

利用常規(guī)算法帶你一步一步解決前端實(shí)際業(yè)務(wù)

2020-09-15 12:14 作者:匯智知了堂  | 我要投稿

Hello,小伙伴們,愛分享的知了小姐姐又來啦!

一提到算法,一些小伙伴們聽著“打腦殼”,一些小伙伴會覺得天天搞什么排序,二叉樹迭代...有啥意思,工作中用不到。哈哈,“老子”說的好,不是用不到,而是你還沒到那個(gè)level。

今天主要是聊聊學(xué)習(xí)簡單的算法在實(shí)際工作中的利用,沒有什么太高深的東西(白嫖怪請走開),只是跟大家分享這個(gè)思考過程,從最low的代碼一步一步思考,最后到基本還看的過去代碼。(文章較長!小妹兒,先上鴛鴦鍋吃起!)


業(yè)務(wù)場景

添加商品這個(gè)常見場景我相信很多小伙伴們都遇到過,大家都知道(SPU)加上一些屬性才組成(SKU),比如最常見的“門”,門是SPU,門包含了顏色、材質(zhì)、開口方向等一堆屬性,直接上代碼!

彩蛋--其實(shí)我是賣門的小二,會有些小伙伴沒有這個(gè)生活經(jīng)驗(yàn),哈哈!正好給大家普及一下,畢竟將來都是要買房子裝修的人,如果小伙伴正好遇到選門這方面的問題留言咨詢哈!


1. 嵌套循環(huán)

這種方式是最容易想到了,就是第一個(gè)屬性數(shù)組迭代,里面再放入第二個(gè)屬性數(shù)組,再放第三個(gè)...

我的天啦!O(N^3)的復(fù)雜度。哈哈,機(jī)智的你是不是早就看出了!難道我的屬性只有3個(gè)?不可能啊,比如你選了鈦合金門,還有70料,83料,85料,90料等等,不同的料價(jià)格不同也就是不同的SKU啊。所以這個(gè)操作肯定是不行的。


2. 兩兩組合

上面的操作當(dāng)額外增加屬性的時(shí)候就不行了,那么我們先解決這個(gè)問題。我們采用屬性兩兩組合,也就是先讓directions和colors組合成二維數(shù)組返回,再和materials組合。上代碼!

結(jié)果如下:

再遍歷一次分開就搞定。這種操作從時(shí)間復(fù)雜度可以看成O(N^2),似乎解決了未知屬性集合數(shù)量的拼裝,但是始終不夠優(yōu)雅。我們繼續(xù)往下思考!


3. 排列組合(遞歸回溯)

本來我打算自己貼代碼,但是前幾天看到一篇博文寫的很好,這里大家可以看一下?@晨曦時(shí)夢見兮?老師的一篇博文,他寫的已經(jīng)非常仔細(xì)了。https://juejin.im/post/6844904191379374087。 如果晨曦的代碼看著暈可以看下面每一行加注釋的代碼。

這里我把思路再整理一下:最終我們需要拼裝成二維數(shù)組[["左鎖內(nèi)開","象牙白","實(shí)木"]、["右邊內(nèi)開","胡桃木","實(shí)木"]...],那么我們的遞歸體就是去完成二維數(shù)組里面的每一項(xiàng)的拼裝。 為了方便大家讀我把每一行代碼加了注釋。大家在看代碼的時(shí)候,不要硬看,要學(xué)會使用debug,同時(shí)也要有良好的js基礎(chǔ),高階函數(shù)、閉包、遞歸等等。


總結(jié)

大家都是從小白慢慢的學(xué)習(xí)到能獨(dú)擋一面的,只有非常厲害的人才能一下想到?遞歸回溯,借用 晨曦老師的話:我們可以先記住一些固定的模式,再從實(shí)際工作中去慢慢領(lǐng)會,同時(shí)夯實(shí)JS基礎(chǔ),多去嘗試,萌新終究會變成別人眼中的大佬!再次感謝?@晨曦時(shí)夢見兮?老師的博文,幫我省了很多篇幅。


ps:文章來源于知了堂蛋糕哥。

利用常規(guī)算法帶你一步一步解決前端實(shí)際業(yè)務(wù)的評論 (共 條)

分享到微博請遵守國家法律
阿拉善左旗| 阿鲁科尔沁旗| 桓台县| 唐河县| 资兴市| 苍山县| 柳州市| 云南省| 交口县| 图片| 营口市| 兴国县| 庆安县| 奉化市| 长汀县| 鄂托克前旗| 汉寿县| 西宁市| 区。| 崇州市| 长泰县| 额济纳旗| 漠河县| 乌鲁木齐市| 秦安县| 鹤峰县| 通辽市| 肥乡县| 曲阳县| 霸州市| 大化| 霍山县| 扶风县| 大丰市| 兴海县| 安阳市| 陵水| 资溪县| 玛多县| 舟曲县| 辽源市|