国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

如何在js代碼中消滅for循環實例詳解

2024-05-06 15:32:23
字體:
來源:轉載
供稿:網友

前言

這篇文章基于我在公司內部分享會整理而成。歡迎探討補充。

補充一:看來很多人沒看完文章就評論了。我在文章末尾說了,是不寫 for 循環,不是不用 for 循環。簡單陳述不寫 for 循環的理由:for 循環易讀性差,而且鼓勵寫指令式代碼和執行副作用。更多參考這篇文章

補充二:回應大家的一些反對意見。本來準備專門寫文章回應的,但是沒時間,就簡短回復,直接扔鏈接了。

1、for 循環性能最好。回應:微觀層面的代碼性能優化,不是你應該關注的。我在文章中演示了,對百萬級數據的操作,reduce 只比 for 循環慢 8 ms,可忽略不計。如果你要操作更大的數據,要考慮下換語言了。

Fast code is NOT important The Sad Tragedy of Micro-Optimization Theater Ditching the Micro-Optimization Fetish

2、不用 for 循環不能 break。回應:用遞歸。我在這篇文章里有解釋怎樣解決遞歸爆棧。

3、框架都用 for 循環!回應:框架考慮的場景和你不一樣。React 和 Vue 還用 class 來創建對象呢。你該跟著學嗎?事實上你應該用工廠函數。Class vs Factory function: exploring the way forward

一,用好 filter,map,和其它 ES6 新增的高階遍歷函數

問題一:

將數組中的空值去除

const arrContainsEmptyVal = [3, 4, 5, 2, 3, undefined, null, 0, ""];

答案:

const compact = arr => arr.filter(Boolean);

問題二:

將數組中的 VIP 用戶余額加 10

const VIPUsers = [ { username: "Kelly", isVIP: true, balance: 20 }, { username: "Tom", isVIP: false, balance: 19 }, { username: "Stephanie", isVIP: true, balance: 30 }];

答案:

VIPUsers.map( user => (user.isVIP ? { ...user, balance: user.balance + 10 } : user));

問題三:

判斷字符串中是否含有元音字母

const randomStr = "hdjrwqpi";

答案:

const isVowel = char => ["a", "e", "o", "i", "u"].includes(char);const containsVowel = str => [...str].some(isVowel); containsVowel(randomStr);

問題四:

判斷用戶是否全部是成年人

const users = [ { name: "Jim", age: 23 }, { name: "Lily", age: 17 }, { name: "Will", age: 25 }];

答案:

users.every(user => user.age >= 18);

問題五:

找出上面用戶中的未成年人

答案:

const findTeen = users => users.find(user => user.age < 18);findTeen(users);

問題六:

將數組中重復項清除

const dupArr = [1, 2, 3, 3, 3, 3, 6, 7];            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 澜沧| 宁化县| 青浦区| 同仁县| 盐边县| 孝昌县| 正镶白旗| 天气| 万年县| 当雄县| 北安市| 台江县| 平利县| 鞍山市| 嘉峪关市| 偏关县| 调兵山市| 饶阳县| 宣武区| 富宁县| 永顺县| 嫩江县| 桑日县| 临沭县| 博客| 岳阳县| 淮滨县| 大连市| 新安县| 鄯善县| 页游| 博野县| 芜湖市| 沙洋县| 金沙县| 舟曲县| 玉龙| 阜平县| 霞浦县| 定安县| 视频|