亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > JS > 正文

8 個有用的JS技巧(推薦)

2024-05-06 16:53:00
字體:
來源:轉載
供稿:網友

為了保證的可讀性,本文采用意譯而非直譯。

想閱讀更多優質文章請猛戳GitHub博客,一年百來篇優質文章等著你!

這些技巧可能大家大部分都用過了,如果用過就當作加深點映像,如果沒有遇到過,就當作學會了幾個技巧。

1. 確保數組值

使用 grid ,需要重新創建原始數據,并且每行的列長度可能不匹配, 為了確保不匹配行之間的長度相等,可以使用Array.fill方法。

let array = Array(5).fill('');console.log(array); // outputs (5) ["", "", "", "", ""]

2. 獲取數組唯一值

ES6 提供了從數組中提取惟一值的兩種非常簡潔的方法。不幸的是,它們不能很好地處理非基本類型的數組。在本文中,主要關注基本數據類型。

const cars = [  'Mazda',   'Ford',   'Renault',   'Opel',   'Mazda']const uniqueWithArrayFrom = Array.from(new Set(cars));console.log(uniqueWithArrayFrom); // outputs ["Mazda", "Ford", "Renault", "Opel"]const uniqueWithSpreadOperator = [...new Set(cars)];console.log(uniqueWithSpreadOperator);// outputs ["Mazda", "Ford", "Renault", "Opel"]

3.使用展開運算符合并對象和對象數組

對象合并是很常見的事情,我們可以使用新的ES6特性來更好,更簡潔的處理合并的過程。

// merging objectsconst product = { name: 'Milk', packaging: 'Plastic', price: '5$' }const manufacturer = { name: 'Company Name', address: 'The Company Address' }const productManufacturer = { ...product, ...manufacturer };console.log(productManufacturer); // outputs { name: "Company Name", packaging: "Plastic", price: "5$", address: "The Company Address" }// merging an array of objects into oneconst cities = [  { name: 'Paris', visited: 'no' },  { name: 'Lyon', visited: 'no' },  { name: 'Marseille', visited: 'yes' },  { name: 'Rome', visited: 'yes' },  { name: 'Milan', visited: 'no' },  { name: 'Palermo', visited: 'yes' },  { name: 'Genoa', visited: 'yes' },  { name: 'Berlin', visited: 'no' },  { name: 'Hamburg', visited: 'yes' },  { name: 'New York', visited: 'yes' }];const result = cities.reduce((accumulator, item) => { return {  ...accumulator,  [item.name]: item.visited }}, {});console.log(result);/* outputsBerlin: "no"Genoa: "yes"Hamburg: "yes"Lyon: "no"Marseille: "yes"Milan: "no"New York: "yes"Palermo: "yes"Paris: "no"Rome: "yes"*/

4. 數組 map 的方法 (不使用Array.Map)

另一種數組 map 的實現的方式,不用 Array.map。

Array.from 還可以接受第二個參數,作用類似于數組的map方法,用來對每個元素進行處理,將處理后的值放入返回的數組。如下:

const cities = [  { name: 'Paris', visited: 'no' },  { name: 'Lyon', visited: 'no' },  { name: 'Marseille', visited: 'yes' },  { name: 'Rome', visited: 'yes' },  { name: 'Milan', visited: 'no' },  { name: 'Palermo', visited: 'yes' },  { name: 'Genoa', visited: 'yes' },  { name: 'Berlin', visited: 'no' },  { name: 'Hamburg', visited: 'yes' },  { name: 'New York', visited: 'yes' }];const cityNames = Array.from(cities, ({ name}) => name);console.log(cityNames);// outputs ["Paris", "Lyon", "Marseille", "Rome", "Milan", "Palermo", "Genoa", "Berlin", "Hamburg", "New York"]

5. 有條件的對象屬性

不再需要根據一個條件創建兩個不同的對象,可以使用展開運算符號來處理。

nst getUser = (emailIncluded) => { return {  name: 'John',  surname: 'Doe',  ...emailIncluded && { email : 'john@doe.com' } }}const user = getUser(true);console.log(user); // outputs { name: "John", surname: "Doe", email: "john@doe.com" }const userWithoutEmail = getUser(false);console.log(userWithoutEmail); // outputs { name: "John", surname: "Doe" }

6. 解構原始數據

有時候一個對象包含很多屬性,而我們只需要其中的幾個,這里可以使用解構方式來提取我們需要的屬性。如一個用戶對象內容如下:

const rawUser = {  name: 'John',  surname: 'Doe',  email: 'john@doe.com',  displayName: 'SuperCoolJohn',  joined: '2016-05-05',  image: 'path-to-the-image',  followers: 45  ...}

我們需要提取出兩個部分,分別是用戶及用戶信息,這時可以這樣做:

let user = {}, userDetails = {};({ name: user.name, surname: user.surname, ...userDetails } = rawUser);console.log(user); // outputs { name: "John", surname: "Doe" }console.log(userDetails); // outputs { email: "john@doe.com", displayName: "SuperCoolJohn", joined: "2016-05-05", image: "path-to-the-image", followers: 45 }

7. 動態屬性名

早期,如果屬性名需要是動態的,我們首先必須聲明一個對象,然后分配一個屬性。這些日子已經過去了,有了ES6特性,我們可以做到這一點。

const dynamic = 'email';let user = {  name: 'John',  [dynamic]: 'john@doe.com'}console.log(user); // outputs { name: "John", email: "john@doe.com" }

8.字符串插值

在用例中,如果正在構建一個基于模板的helper組件,那么這一點就會非常突出,它使動態模板連接容易得多。

const user = { name: 'John', surname: 'Doe', details: {  email: 'john@doe.com',  displayName: 'SuperCoolJohn',  joined: '2016-05-05',  image: 'path-to-the-image',  followers: 45 }}const printUserInfo = (user) => {  const text = `The user is ${user.name} ${user.surname}. Email: ${user.details.email}. Display Name: ${user.details.displayName}. ${user.name} has ${user.details.followers} followers.` console.log(text);}printUserInfo(user);// outputs 'The user is John Doe. Email: john@doe.com. Display Name: SuperCoolJohn. John has 45 followers.'

譯者:前端小智

原文:https://devinduct.com/blogpost/26/8-useful-javascript-tricks

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲毛片一区二区| 日本一区二区在线播放| 亚洲图片制服诱惑| 国产视频在线一区二区| 亚洲国产精品免费| 亚洲电影成人av99爱色| 国产精品一区二区三区毛片淫片| 精品国内亚洲在观看18黄| 日韩免费观看av| 亚洲午夜av久久乱码| 午夜精品一区二区三区视频免费看| 久久国产精品影视| 国产久一一精品| 亚洲成人亚洲激情| 精品一区二区亚洲| 91精品视频大全| 国产精品亚洲网站| 国产精品激情av电影在线观看| 国产精品久久久久一区二区| 国产精品成人av在线| 免费不卡欧美自拍视频| 456国产精品| 欧美视频在线观看免费网址| 亚洲精品电影网| 91免费精品国偷自产在线| 97成人精品视频在线观看| 91久久在线播放| 日韩av在线影视| 亚洲乱码国产乱码精品精天堂| 欧美激情奇米色| 日本一区二区三区四区视频| 国产综合福利在线| 亚洲欧美自拍一区| 亚洲精品一区二区三区不| 国模视频一区二区| 欧美天天综合色影久久精品| 久久亚洲一区二区三区四区五区高| 欧美成人免费一级人片100| 久久综合国产精品台湾中文娱乐网| 亚洲午夜色婷婷在线| 欧美自拍视频在线| 日韩欧美精品免费在线| 九九热r在线视频精品| 国产精品一区二区3区| 日本久久久a级免费| 日韩在线视频二区| 日韩欧美在线视频免费观看| 亚洲字幕在线观看| 亚洲最大的免费| 日韩av网站导航| 国产极品jizzhd欧美| 91精品国产91久久| 日韩精品极品视频免费观看| 欧美日韩综合视频网址| 国产精品aaaa| 2019日本中文字幕| 亚洲成人教育av| 91精品视频免费| 亚洲高清久久久久久| 51午夜精品视频| 韩国精品美女www爽爽爽视频| 国产+成+人+亚洲欧洲| 国产精品久久久久久久美男| 亚洲高清在线观看| 欧美精品在线免费| 亚洲一区二区三区四区在线播放| 精品福利在线看| 国产精品女主播视频| 亚洲成人av片在线观看| 日韩免费av一区二区| 精品久久久久久亚洲精品| 欧美国产精品va在线观看| 欧美午夜精品在线| 午夜剧场成人观在线视频免费观看| 欧美激情亚洲另类| 9.1国产丝袜在线观看| 国产精品国产福利国产秒拍| 欧美日韩不卡合集视频| 亚洲成av人影院在线观看| 欧美乱大交做爰xxxⅹ性3| 国产91在线播放| 久久久久久中文| 久久久精品一区二区三区| 日韩欧美国产视频| 不卡中文字幕av| 色777狠狠综合秋免鲁丝| 国产亚洲a∨片在线观看| 91sa在线看| 欧美精品成人在线| 欧美精品在线极品| 欧美天堂在线观看| 俺去了亚洲欧美日韩| 国产日韩中文字幕在线| 色老头一区二区三区| 亚洲午夜精品久久久久久久久久久久| 夜夜躁日日躁狠狠久久88av| 精品国产乱码久久久久酒店| 欧美性一区二区三区| 国产成+人+综合+亚洲欧洲| 色狠狠久久aa北条麻妃| 欧美性受xxxx黑人猛交| 国产丝袜一区视频在线观看| 18一19gay欧美视频网站| 日韩女优人人人人射在线视频| 欧美重口另类videos人妖| 精品美女永久免费视频| 欧美午夜性色大片在线观看| 日韩精品高清视频| 亚洲精品久久久久久久久久久久| 日韩电影免费观看在线| 欧美日本啪啪无遮挡网站| 亚洲片在线观看| 国产欧美亚洲精品| 国产有码在线一区二区视频| 欧美激情区在线播放| 精品日本美女福利在线观看| 成人在线国产精品| 精品人伦一区二区三区蜜桃网站| 尤物九九久久国产精品的特点| 午夜精品三级视频福利| 中文字幕亚洲欧美日韩2019| 亚洲国产精品久久91精品| 国产中文欧美精品| 久久精品美女视频网站| 国产视频精品xxxx| 国产精品美女久久| 日本成人在线视频网址| 热re91久久精品国99热蜜臀| 亚洲va欧美va在线观看| 久久久女女女女999久久| 色综合91久久精品中文字幕| 亚洲一区制服诱惑| 久久精品成人欧美大片| 国产精品入口免费视频一| 日韩成人中文字幕| 日韩av资源在线播放| 国产98色在线| 精品国产乱码久久久久久婷婷| 一区二区三区 在线观看视| 国产免费一区二区三区在线能观看| 亚洲第一区在线观看| 久久免费视频在线观看| 夜夜躁日日躁狠狠久久88av| 亚洲精品电影网在线观看| 91理论片午午论夜理片久久| 欧美成人精品一区二区| 欧美极品在线视频| 久久久精品视频在线观看| 91香蕉国产在线观看| 欧美俄罗斯性视频| 91影院在线免费观看视频| 亚洲激情 国产| 日韩成人激情视频| 色悠悠久久88| 亚洲情综合五月天| 欧美疯狂性受xxxxx另类| 欧美裸体视频网站| 久久久久久久成人| 久久免费精品日本久久中文字幕| 国产亚洲一级高清| 91精品国产成人www| 亚洲精品国产精品乱码不99按摩| 久久久人成影片一区二区三区观看| 亚洲风情亚aⅴ在线发布|